我想使用java在输入字符串中找到特定单词的位置。我不想使用正则表达式。例如,如果我的输入字符串是“拉玛拉曼拉玛”,如果我想找到拉玛那么它应该给我索引号0和11作为输出。我的代码在我不想要的三个单词中找到了Rama。一些帮助?
答案 0 :(得分:3)
以下是您的解决方案:
int index=0,j=0;
String name="RAMA RAMAN RAMA";
String[] names = name.split(" ");
for(int i=0;i<names.length;i++){
if(names[i].equals("RAMA")){
if(i!=0){
while(j<i){
index += names[j++].length();
}
}
index += i;
System.out.println("Your match is at : "+index);
}
}
答案 1 :(得分:0)
String name = "RAMA RAMA RAMA";
int position = name.indexOf("RAMA");
//这为您提供了“RAMA”的第一个位置。如果您希望每次出现每个索引,请使用以下索引:
int start = 0;
int end = 0;
while((start = name.indexOf("RAMA", end) != -1){
int position = start;
end = start;
}
答案 2 :(得分:0)
你可以试试这个
String str="Rama Raman Rama";
String[] arr=str.split(" "); // split and grab word to array
int length=0;
for(String i:arr){
if("Rama".equals(i)){
System.out.println("Index: "+length);
}
length=length+i.length()+1;// keep length count here
}
答案 3 :(得分:0)
您可以使用课程Pattern
和Matcher
。您尝试查找“alpha”一词时的示例:
String s = "alpha beta alpha anything";
Pattern p = Pattern.compile("alpha");
Matcher m = p.matcher(s);
while (m.find())
System.out.println(m.start());
打印:0,11
答案 4 :(得分:0)
只需使用indexOf()方法即可。这个方法会通过返回word的索引让你知道word是否在文本中,否则将返回-1表示找不到word。
String str =“世界很美”;
str.indexOf( “漂亮”); //这将返回值9,因为美丽的单词从索引9开始
的类似
str.indexOf( “漂亮”); //它将返回-1,因为文本中不存在该单词