4

HI I want to check one string value with an array of strings. I am using the contains() method, but it is case sensitive. For example:

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

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

Now the question is how to check that string ?

can anyone help me?

thanks in advance

Marnix
  • 6,384
  • 4
  • 43
  • 78
shiva
  • 41
  • 1
  • 1
  • 2
  • I don't think you can call `str.contains(items)`, because `String.contains` needs a character array, not a String array. – Marnix Jul 30 '11 at 08:28

3 Answers3

8

You probably want to know if items contain str? And be case-insensitive. So loop through the array:

boolean contains = false;
for (String item : items) {
    if (str.equalsIgnoreCase(item)) {
        contains = true;
        break; // No need to look further.
    } 
}
Joonas Pulakka
  • 36,252
  • 29
  • 106
  • 169
2

you could sort the string first using stringArray=Arrays.sort(stringArray); you can then use the Binary Search algorithm int pos = Arrays.binarySearch(stringArray, stringItem);. if (pos > -1) then you found the element else the stringItem doesnot exist in the stringArray.

Anantha Sharma
  • 9,920
  • 4
  • 33
  • 35
1

If you will only check once:

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

    for(String s : items){
        if(s.compareToIgnoreCase(str) == 0){
            System.out.println("match");
        }
    }

If you will do many checks:

    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");
Petar Ivanov
  • 91,536
  • 11
  • 82
  • 95