获取字符串中特定单词后面的字符?

时间:2013-03-27 22:16:36

标签: java string

我需要在字符串中找到一串文字和一个特定的单词。一旦我发现字符串中的单词的下一个出现,我需要以某种方式找到直接跟随该单词的字符。我尝试使用扫描仪,但它没有包含nextChar()方法,而这种类似的东西可以达到我试图做的目的。我还能尝试什么?这是我的代码,但它没有做我想做的事。

public void storeChar(String str)  //used to get the char after the seed and store it in the arraylist of chars
{
    Scanner sc = new Scanner(str);
    seed = wrdSd.getSeed();
    while(sc.hasNext())  //while there are words left to read
    {
        String next = sc.next();

        if(next.equals(seed))  //if the next word of the scanner = the seed
        {
            ch = sc.next().charAt(0);  //gets char at index 0 of the next word
            singleChar.add(ch); //adds the char to the char arraylist
        }   
    }
    sc.close();

}

提前致谢!

3 个答案:

答案 0 :(得分:1)

使用String#indexOf方法确定单词是否在字符串中。如果是,则使用返回的索引,添加单词的长度,并使用charAt方法将该结果用作字符串的索引。小心你没有跑掉字符串的末尾。

答案 1 :(得分:1)

尝试使用IndexOf类提供的String方法。

int idx = str.IndexOf(seed);
return str.charAt(idx + seed.Length);

这显然没有进行任何检查,因为你的字符串可能在最后找到,而索引将指向越界。此外,如果字符串不匹配,将为索引返回-1

答案 2 :(得分:-1)

如果您的文字是“Hello World”,并且您想要找到“地狱”一词后面的内容,您可以使用正则表达式,例如: “地狱(。)”

然后第一个捕获组将是“o”,这就是你想要的。

如果您不了解RE,请阅读: http://docs.oracle.com/javase/tutorial/essential/regex/

然后这对于捕获组: http://docs.oracle.com/javase/tutorial/essential/regex/groups.html