0

我有一串文本和一个需要在字符串中找到的特定单词。一旦我在字符串中找到下一次出现的单词,我需要以某种方式找到直接跟在该单词后面的字符。我尝试使用扫描仪,但它不包含 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();

}

提前致谢!

4

3 回答 3

1

使用String#indexOf方法确定单词是否在字符串中。如果是,则使用返回的索引,添加单词的长度,然后使用该charAt方法将该结果作为字符串的索引。小心不要跑到字符串的末端。

于 2013-03-27T22:18:45.470 回答
1

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

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

这显然不会进行任何检查,因为您的字符串可能会在最后找到并且索引将超出范围。此外,如果字符串不匹配,-1将返回索引。

于 2013-03-27T22:22:01.710 回答
-1

如果您的文本是“Hello World”,并且您想查找“Hell”一词之后的内容,您可以使用正则表达式,例如:“Hell(.)”

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

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

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

于 2013-03-27T22:20:59.413 回答