Сравнение строк без учета регистра

У меня есть это в настоящее время (и многое другое), и я хочу сделать так, чтобы, если кто-то вводит что-то из массива, которое не в верхнем регистре (в настоящее время все в верхнем регистре), он все еще мог это заказать.

if(food.equals(array[0])) {
    System.out.println("Here is your " + food + ".");
}

person Durnehviir    schedule 16.12.2013    source источник
comment
food.equalsIgnoreCase(массив[0]) ??   -  person Elye M.    schedule 16.12.2013
comment
У меня есть код для него в других местах, это небольшая часть кода.   -  person Durnehviir    schedule 16.12.2013
comment
Я знал, что на такой вопрос, должно быть, уже был дан ответ в StackOverflow, IMO.   -  person Sage    schedule 16.12.2013


Ответы (4)


Используйте equalsIgnoreCase вместо equals.

person Dawood ibn Kareem    schedule 16.12.2013
comment
Спасибо, это сработало, жаль, что я не мог принять раньше. - person Durnehviir; 16.12.2013

Использовать

food.equalsIgnoreCase(array[0])

Это задокументировано в String API.

person Amir Afghani    schedule 16.12.2013

Используйте equalsIgnoreCase() вместо equals()

person Rakesh KR    schedule 16.12.2013

Другой способ сделать это - убедиться, что все, что хранится в вашем массиве, написано в нижнем регистре, а затем выполнить food = food.toLowerCase(); перед проверкой того, есть ли что-то food.equals() в вашем массиве.

Если у вас были очень жесткие требования к производительности для этой части вашего приложения, вы можете провести сравнение таким образом.

person user1445967    schedule 16.12.2013
comment
Другая возможность — создать класс Food, который знает, как сравнивать себя без учета регистра (переопределяя equals и hashCode), и использовать его вместо строк. - person David Conrad; 16.12.2013