java 如何查找匹配的字符和字符串

输入一段字符然后输入要查询的字符或字符串返回出所有这些字符或字符串的位置我只会查第一个位置咧... 输入一段字符 然后输入要查询的字符或字符串 返回出所有这些字符或字符串的位置 我只会查第一个位置咧 展开
 我来答
woshidaniel
推荐于2018-02-27 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:956万
展开全部

通过indexOf进行查找

示例:

String str = "abcdefg";
if(str.indexOf("cd")>=0){//这里查找str中是否存在"cd"字符串,如果存在则会返回大于等于0的数,如果不存在,则返回-1
   System.out.println("找到了");
}

补充indexOf

1、返回 String 对象内第一次出现子字符串的字符位置。

2、string.indexOf(subString[, startIndex])

1)参数 
string

必选项。String 对象或文字。

subString 必选项。

要在 String 对象中查找的子字符串。

starIndex 可选项。

该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。

2)说明 
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。

月老头
2008-04-30 · TA获得超过192个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:218万
展开全部
import java.io.*;

public class SearchWords {

public static void main(String[] args) throws Exception {
String s = "";
System.out.println("请输入字符串:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
s = br.readLine();

while (true) {
int num = 0;
System.out.println("请输入要查找的字符串: ");
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
String user_word = br1.readLine().trim();
if (!user_word.equals("exit")) {
System.out.println("您要查找的字符串是:" + user_word);
}
if (user_word.equals("exit")) {// 直到输入的是exit,程序退出。
br1.close();
System.exit(0);
} else {
int line = 0;
int index = 0;
int index1 = 0;
line++;
while ((index1 = s.indexOf(user_word, index)) >= 0) {
num++;
index += index1 + 1;
System.out.println("找到您要的字符串了,在:第" + (index1 + 1) + "个位置");
}
// }
}
if (num == 0) {
System.out.println("Sorry,没找到您要查找的字符串!!!");
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2008-04-30 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2902万
展开全部
你可以自己写个方法的!
从返回的第一个位置开始substring,同时记住位置。

public int[] getOffset(String str,String s){
int[] arr=new int[str.length];
int j=1;
while(str.indexOf(s)!=-1){
int i=str.indexOf(s);
if(j==1){
arr[j-1]=i;
}else{
arr[j-1]=i+arr[j-2]+1;
}
String st=str.substring(i+1);
System.out.println(st);
str=st;
j++;
System.out.println("j="+j);
}
return arr;
}

public static void main(String[] args) {

String str="abcaabbddab";
StringText st=new StringText();
int[] i=st.getOffset(str, "ab");
for(int j:i){
System.out.println(j);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaibanglin
2008-04-30 · TA获得超过174个赞
知道答主
回答量:349
采纳率:0%
帮助的人:111万
展开全部
初学者答案:
用for循环,截取字符串的长度,然后逐个进行比较,如果正确,返回他的位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apollo47
推荐于2017-11-25 · TA获得超过1451个赞
知道小有建树答主
回答量:810
采纳率:0%
帮助的人:539万
展开全部
String.indexOf(start, subStr);

int index = s.indexOf(subStr);
while(index != -1){
System.out.println(index);
index = s.indexOf(index, subStr);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式