Java indexOf用于一次传递中的多个字符串

时间:2011-05-17 21:54:10

标签: java indexof

有没有办法在Java中使用indexOf在一个解析中找到给定文本中多个字符串的位置?

例如, 我想在一个单独的文本解析中为“你”和“会议”做一个indexOf “你今天能参加会议吗?”

任何帮助将不胜感激!提前致谢

2 个答案:

答案 0 :(得分:3)

当你说出问题:不。

但是,您可以使用带匹配的正则表达式,string.matches(“。*(meeting | today)。*”)。有关正则表达式的语法,请参阅javadoc。如果你只使用字母和数字 你可以从例子中构造模式,但有些字符需要用\引用,在这样的文字内部会变成\。

答案 1 :(得分:2)

如果您在文本中搜索某些模式,请使用正则表达式。 在你的情况下,如果你想在给定的文本中找到一些字符串,我会写一个基本函数:

public static void main(String ... args) {
    String a = "i have a little dog";
    String [] b = new String [] { "have", "dog" }; 
    locateStrings(a,b);
}

public static int [] locateStrings(String source, String [] str) {
    if (source == null || str == null || str.length == 0)
        throw new IllegalArgumentException();
    int [] result = new int [str.length];
    for (int i = 0; i < str.length ; i++) {
        result[i] = source.indexOf(str[i]);
    }
    return result;      
}