Игнорирование верхнего и нижнего регистра в Java

Я хочу знать, как заставить пользователя игнорировать регистр в моем методе:

public static void findPatient() {
    if (myPatientList.getNumPatients() == 0) {
        System.out.println("No patient information is stored.");
    }
    else {
        System.out.print("Enter part of the patient name: ");
        String name = sc.next();
        sc.nextLine();
        System.out.print(myPatientList.showPatients(name));
    }
}

person Noah Skull Weijian    schedule 18.11.2014    source источник
comment
Просто используйте toLowerCase или toUpper   -  person Maroun    schedule 18.11.2014
comment
docs.oracle.com/javase/7/docs/ api/java/lang/String.html читать toLowerCase() и toUpperCase()   -  person Balaji Krishnan    schedule 18.11.2014
comment
или равноIgnoreCase().   -  person NomadMaker    schedule 21.06.2020


Ответы (6)


Вы должны использовать метод String .toLowerCase() или .toUpperCase() как для ввода, так и для строки, с которой вы пытаетесь сопоставить его.

Пример:

public static void findPatient() {
    System.out.print("Enter part of the patient name: ");
    String name = sc.nextLine();

    System.out.print(myPatientList.showPatients(name));
}

//the other class
ArrayList<String> patientList;

public void showPatients(String name) {
    boolean match = false;

    for(String matchingname : patientList) {
        if (matchingname.toLowerCase().contains(name.toLowerCase())) {
            match = true;
        }
    }
}
person thenightshines    schedule 18.11.2014

Используйте методы String#toLowerCase() или String#equalsIgnoreCase()

Некоторые примеры:

    String abc    = "Abc".toLowerCase();
    boolean isAbc = "Abc".equalsIgnoreCase("ABC");
person dieter    schedule 18.11.2014

В этом должен помочь метод .equalsIgnoreCase().

person user10018672    schedule 01.07.2018

используйте метод toUpperCase() или toLowerCase() класса String.

person peterremec    schedule 18.11.2014

Вы игнорируете регистр при обработке данных, а не при их извлечении/сохранении. Если вы хотите хранить все в нижнем регистре, используйте String#toLowerCase, в верхнем регистре используйте String#toUpperCase.

Затем, когда вам действительно нужно его обработать, вы можете использовать нестандартные методы, такие как String#equalsIgnoreCase(java.lang.String). Если в Java API нет ничего, что соответствовало бы вашим потребностям, вам придется написать собственную логику.

person alain.janinm    schedule 18.11.2014

Я также пробовал весь опубликованный код, пока не узнал этот

if(math.toLowerCase(Locale.ENGLISH));

Здесь любой символ, введенный пользователем, будет преобразован в нижний регистр.

person Naf Ty    schedule 11.06.2016
comment
Как это сделать здесь? - person Naf Ty; 29.10.2016