Java中如何检查字符串是否在字符串数组中?

4

您好,我想要将一个字符串与一个字符串数组进行比较。我正在使用 contains() 方法,但它是区分大小写的。例如:

String str="one";
String [] items= {"ONE","TWO","THREE"};

str.contains(items); // it is returning false.

现在的问题是如何检查那个字符串?
有人能帮忙吗?
谢谢您提前的帮助。

我认为你不能调用 str.contains(items),因为 String.contains 需要一个字符数组,而不是一个字符串数组。 - Marnix
3个回答

8

您可能想知道items是否包含str?并且不区分大小写。因此,请循环遍历数组:

boolean contains = false;
for (String item : items) {
    if (str.equalsIgnoreCase(item)) {
        contains = true;
        break; // No need to look further.
    } 
}

2

你可以先使用stringArray=Arrays.sort(stringArray);对字符串进行排序,然后使用二分查找算法int pos = Arrays.binarySearch(stringArray, stringItem);。如果pos > -1则表示你找到了该元素,否则stringItem不存在于stringArray中。


1

如果你只会检查一次:

    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");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接