Разница между совпадениями и equalsIgnoreCase или равна в строчном классе
соответствует: проверяет, соответствует ли полная введенная строка значению, представленному в строковом объекте.
equalsIgnoreCase. Игнорируя случай, он проверяет, соответствует ли введенная строка значению, присутствующему в строковом объекте.
equals: чувствителен к регистру и проверяет, соответствует ли введенная строка значению, представленному в строковом объекте.
Это то, что я знаю о методах, присутствующих в классе String.
Есть ли другие отличия (не хватает ли каких-либо ценных различий)?
Если нет различий, то почему метод can not matches можно удалить из класса String, так как функциональность, которую он создает, может быть достигнута с использованием других вышеупомянутых методов соответственно.
Ответы
Ответ 1
Существует большая разница - matches проверяет соответствие String
шаблону регулярного выражения, а не той же строке. Не вводите в заблуждение тот факт, что он получает String
в качестве аргумента.
Например:
"hello".equals(".*e.*"); // false
"hello".matches(".*e.*"); // true
Ответ 2
Ключевое отличие состоит в том, что matches
соответствуют регулярным выражениям, тогда как совпадения соответствуют определенной строке.
System.out.println("hello".matches(".+")); // Output: true
System.out.println("hello".equals(".+")); // Output: false
System.out.println("wtf?".matches("wtf?")); // Output: false
System.out.println("wtf?".equals("wtf?")); // Output: true
Я предлагаю вам взглянуть на то, что такое регулярное выражение
Ответ 3
Это то, что я получил из документации...
соответствует (String regex
): указывает, соответствует ли эта строка данному регулярному выражению
equals (String Object
): сравнивает эту строку с указанным объектом. Результат верен тогда и только тогда, когда аргумент не является нулевым и является объектом String, который представляет ту же последовательность символов, что и этот объект.
equalsIgnoreCase (String anotherString
): сравнивает эту строку с другой строкой, игнорируя рассмотрение случая. Две строки считаются равными игнорирующими случаями, если они имеют одинаковую длину, а соответствующие символы в двух строках равны игнорированию случая.
Ответ 4
matches
возвращает true, если строка соответствует регулярному выражению, поэтому ее нельзя удалить из класса String.
Ответ 5
matches(), используемый для проверки того, соответствует ли данная строка указанному регулярному выражению
ex.; String s = "humbapumpa jim"; assertTrue (s.matches(|) "(джим джо).." );
equals() только для проверки заданной строки с указанной строкой как точное совпадение.
equalsIgnoreCase() --- будет игнорировать чувствительный к регистру.