在字符串中搜索单词

时间:2013-09-10 07:56:46

标签: java

我想使用java在输入字符串中找到特定单词的位置。我不想使用正则表达式。例如,如果我的输入字符串是“拉玛拉曼拉玛”,如果我想找到拉玛那么它应该给我索引号0和11作为输出。我的代码在我不想要的三个单词中找到了Rama。一些帮助?

5 个答案:

答案 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)

您可以使用课程PatternMatcher。您尝试查找“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,因为文本中不存在该单词