3

假设这是我的两个字符串

String listOfIntegers = ("1 5 9 12 15 50 80 121");
String integerToLookFor = ("12");

我希望我的程序扫描 listOfIntegers 并打印出 integerToLookFor 是否在字符串中。有任何想法吗?

4

6 回答 6

6
  1. 用空格作为分隔符分割字符串,得到一个字符串数组。
  2. 扫描数组并检查每个元素是否等于查找变量。

代码:

String listOfIntegers = ("1 5 9 12 15 50 80 121");
String integerToLookFor = ("12");
String[] splitArr = listOfIntegers.split("\\s");
for(String s: splitArr){
    if(s.equals(integerToLookFor)) {
        System.out.println("found: " + s);
        break; //breaks out of the loop
    }
}
于 2012-11-29T23:29:17.053 回答
2

我会将列表拆分为字符串数组,然后使用 foreach 循环通过比较值来找到匹配项。

于 2012-11-29T23:24:30.440 回答
2

如果您确保要搜索的列表和数字都包含在空格中,则可以简化搜索:

    String listOfIntegers = " " + "1 5 9 12 15 50 80 121" + " ";
    String integerToLookFor = " " + "12" + " ";
    if (listOfIntegers.indexOf(integerToLookFor) != -1) {
        // match found
    }
于 2012-11-29T23:46:54.727 回答
2
import java.util.Arrays;    
String listOfIntegers = ("1 5 9 12 15 50 80 121");
String integerToLookFor = ("12");    
System.out.println(Arrays.asList(listOfIntegers.split(" ")).contains(integerToLookFor));
于 2012-11-30T10:25:59.540 回答
0
Array ints = listOfIntegers.split(' ');
print ints.inArray(integerToLookFor);
于 2012-11-29T23:23:14.897 回答
0

您可以在 regex 包中使用 Matcher 和 Pattern.compiler。请参见下面的示例:

Pattern p = Pattern.compile(integerToLookFor);
Matcher m = p.matcher(listOfIntegers);
while(m.find()){

   System.out.println("Starting Point:"+m.start()+"Ending point:"+m.end());

}
于 2012-11-29T23:44:40.093 回答