有没有办法在Java中使用indexOf在一个解析中找到给定文本中多个字符串的位置?
例如, 我想在一个单独的文本解析中为“你”和“会议”做一个indexOf “你今天能参加会议吗?”
任何帮助将不胜感激!提前致谢
答案 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;
}