您好,我想要将一个字符串与一个字符串数组进行比较。我正在使用 contains()
方法,但它是区分大小写的。例如:
String str="one";
String [] items= {"ONE","TWO","THREE"};
str.contains(items); // it is returning false.
现在的问题是如何检查那个字符串?
有人能帮忙吗?
谢谢您提前的帮助。
您好,我想要将一个字符串与一个字符串数组进行比较。我正在使用 contains()
方法,但它是区分大小写的。例如:
String str="one";
String [] items= {"ONE","TWO","THREE"};
str.contains(items); // it is returning false.
您可能想知道items是否包含str?并且不区分大小写。因此,请循环遍历数组:
boolean contains = false;
for (String item : items) {
if (str.equalsIgnoreCase(item)) {
contains = true;
break; // No need to look further.
}
}
你可以先使用stringArray=Arrays.sort(stringArray);
对字符串进行排序,然后使用二分查找算法int pos = Arrays.binarySearch(stringArray, stringItem);
。如果pos > -1
则表示你找到了该元素,否则stringItem
不存在于stringArray
中。
如果你只会检查一次:
String str="one"; String [] items= {"ONE","TWO","THREE"};
for(String s : items){
if(s.compareToIgnoreCase(str) == 0){
System.out.println("match");
}
}
如果你需要进行多次检查:
String str="one"; String [] items= {"ONE","TWO","THREE"};
List<String> lowerItems = new ArrayList<String>();
for(String s : items)
lowerItems.add(s.toLowerCase());
if(lowerItems.contains(str))
System.out.println("match");
str.contains(items)
,因为String.contains
需要一个字符数组,而不是一个字符串数组。 - Marnix