HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В этой статье мы рассмотрим операторы и методы сравнения строк в Java. Поговорим про особенности использования оператора ==, а также про методы equals(), equalsIgnoreCase и compareTo(), т. к. они используются чаще всего.</p>
1 <p>В этой статье мы рассмотрим операторы и методы сравнения строк в Java. Поговорим про особенности использования оператора ==, а также про методы equals(), equalsIgnoreCase и compareTo(), т. к. они используются чаще всего.</p>
2 <h2>Оператор для сравнения строк "=="</h2>
2 <h2>Оператор для сравнения строк "=="</h2>
3 <p>В первую очередь, надо сказать, что этот оператор проверяет и сравнивает<strong>не значения, а ссылки</strong>. С его помощью вы сможете проверить, являются ли сравниваемые вами элементы одним и тем же объектом. Когда 2 переменные String указывают на тот же самый объект в памяти, сравнение вернёт true, в обратном случае - false.</p>
3 <p>В первую очередь, надо сказать, что этот оператор проверяет и сравнивает<strong>не значения, а ссылки</strong>. С его помощью вы сможете проверить, являются ли сравниваемые вами элементы одним и тем же объектом. Когда 2 переменные String указывают на тот же самый объект в памяти, сравнение вернёт true, в обратном случае - false.</p>
4 <p>В примере выше литералы интернируются компилятором, в результате чего ссылаются на один и тот же объект.</p>
4 <p>В примере выше литералы интернируются компилятором, в результате чего ссылаются на один и тот же объект.</p>
5 new String("Java") == "Java" // false<p>Вышеприведённые переменные String указывают уже на различные объекты.</p>
5 new String("Java") == "Java" // false<p>Вышеприведённые переменные String указывают уже на различные объекты.</p>
6 new String("Java") == new String("Java") // false<p>Здесь тоже вышеприведенные переменные String указывают на различные объекты.</p>
6 new String("Java") == new String("Java") // false<p>Здесь тоже вышеприведенные переменные String указывают на различные объекты.</p>
7 <p>Итак, мы видим, что оператор == по сути, сравнивает не две строки, а лишь ссылки, на которые указывают строки.</p>
7 <p>Итак, мы видим, что оператор == по сути, сравнивает не две строки, а лишь ссылки, на которые указывают строки.</p>
8 class TestClass{ public static void main (String[] args){ // ссылается на тот же объект, возвращая true if( "Java" == "Java" ){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // указывает уже на другой объект, возвращая false if(new String("Java") == "Java"){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // указывает тоже на другой объект, возвращая false if(new String("Java") == new String("Java") ){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><strong>Итог</strong>:</p>
8 class TestClass{ public static void main (String[] args){ // ссылается на тот же объект, возвращая true if( "Java" == "Java" ){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // указывает уже на другой объект, возвращая false if(new String("Java") == "Java"){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // указывает тоже на другой объект, возвращая false if(new String("Java") == new String("Java") ){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><strong>Итог</strong>:</p>
9 Statement is true Statement is false Statement is false<h2>Метод сравнения String equals()</h2>
9 Statement is true Statement is false Statement is false<h2>Метод сравнения String equals()</h2>
10 <p>Сравнение строк с помощью equals позволяет проверять исходное содержимое строки. Метод возвращает true, когда параметр - объект String, представляющий собой ту же строку символов, что и объект:</p>
10 <p>Сравнение строк с помощью equals позволяет проверять исходное содержимое строки. Метод возвращает true, когда параметр - объект String, представляющий собой ту же строку символов, что и объект:</p>
11 Objects.equals("Java", new String("Java")) //true<p>Когда надо выполнить проверку, имеют ли 2 строки одинаковое значение, мы можем задействовать Objects.equals().</p>
11 Objects.equals("Java", new String("Java")) //true<p>Когда надо выполнить проверку, имеют ли 2 строки одинаковое значение, мы можем задействовать Objects.equals().</p>
12 class TestClass{ public static void main (String[] args) { String str1 = "Java"; String str2 = "Java"; String str3 = "ASP"; String str4 = "JAVA"; String str5 = new String("Java"); // оба равны и возвращают true if(str1.equals(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба не равны и возвращают false if(str1.equals(str3)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба не равны и возвращают false if(str1.equals(str4)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба равны и возвращают true if(str1.equals(str5)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><strong>Итог</strong>:</p>
12 class TestClass{ public static void main (String[] args) { String str1 = "Java"; String str2 = "Java"; String str3 = "ASP"; String str4 = "JAVA"; String str5 = new String("Java"); // оба равны и возвращают true if(str1.equals(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба не равны и возвращают false if(str1.equals(str3)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба не равны и возвращают false if(str1.equals(str4)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // оба равны и возвращают true if(str1.equals(str5)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><strong>Итог</strong>:</p>
13 Statement is true Statement is false Statement is false Statement is true<h2>Метод сравнения String equalsIgnoreCase()</h2>
13 Statement is true Statement is false Statement is false Statement is true<h2>Метод сравнения String equalsIgnoreCase()</h2>
14 <p>С помощью метода equalsIgnoreCase() вы выполните сравнение строк, что называется, лексикографически, причём различия регистра будут игнорированы. Здесь значение true возвращается в том случае, если аргумент является объектом String и представляет такую же последовательность символов, что и у объекта. Прекрасное решение, если надо осуществить проверку строки на равенство, не учитывая при этом регистр.</p>
14 <p>С помощью метода equalsIgnoreCase() вы выполните сравнение строк, что называется, лексикографически, причём различия регистра будут игнорированы. Здесь значение true возвращается в том случае, если аргумент является объектом String и представляет такую же последовательность символов, что и у объекта. Прекрасное решение, если надо осуществить проверку строки на равенство, не учитывая при этом регистр.</p>
15 class TestClass{ public static void main (String[] args){ String str1 = "Java"; String str2 = "JAVA"; // возвращается true, ведь обе строки равны без учёта регистра if(str1.equalsIgnoreCase(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // возвращается false, т. к. учитывается регистр символов if(str1.equals(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><b>Результат</b></p>
15 class TestClass{ public static void main (String[] args){ String str1 = "Java"; String str2 = "JAVA"; // возвращается true, ведь обе строки равны без учёта регистра if(str1.equalsIgnoreCase(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } // возвращается false, т. к. учитывается регистр символов if(str1.equals(str2)){ System.out.println("Statement is true"); }else{ System.out.println("Statement is false"); } } }<p><b>Результат</b></p>
16 Statement is true Statement is false<h2>Метод сравнения String compareTo()</h2>
16 Statement is true Statement is false<h2>Метод сравнения String compareTo()</h2>
17 <p>Метод сравнения compareTo() применяется, если надо определить лексикографический порядок строк. Он выполняет сравнение значения char, действуя аналогично equals(). Когда 2 строки совпадают, compareTo() вернёт значение "ноль" (результат = 0). Сравнивая 2 строки, он вернёт положительное целое число (результат &gt; 0), если 1-й объект String следует за 2-й строкой. Соответственно, метод вернёт отрицательный результат (результат &lt; 0), когда 1-й объект String будет предшествовать 2-й строке:</p>
17 <p>Метод сравнения compareTo() применяется, если надо определить лексикографический порядок строк. Он выполняет сравнение значения char, действуя аналогично equals(). Когда 2 строки совпадают, compareTo() вернёт значение "ноль" (результат = 0). Сравнивая 2 строки, он вернёт положительное целое число (результат &gt; 0), если 1-й объект String следует за 2-й строкой. Соответственно, метод вернёт отрицательный результат (результат &lt; 0), когда 1-й объект String будет предшествовать 2-й строке:</p>
18 result1 == result2 :возвращается 0; result1 &gt; result2 :возвращается положительное значение; result1 &lt; result2 : возвращается отрицательное значение.<p><strong>Приведём пример</strong>:</p>
18 result1 == result2 :возвращается 0; result1 &gt; result2 :возвращается положительное значение; result1 &lt; result2 : возвращается отрицательное значение.<p><strong>Приведём пример</strong>:</p>
19 class TestClass{ public static void main (String[] args) { String str1 = "Java"; String str2 = "Java"; String str3 = "ASP"; int val = 0; val = str1.compareTo(str2); System.out.println(val); val = str1.compareTo(str3); System.out.println(val); val = str3.compareTo(str1); System.out.println(val); } }<p><strong>Итог</strong>:</p>
19 class TestClass{ public static void main (String[] args) { String str1 = "Java"; String str2 = "Java"; String str3 = "ASP"; int val = 0; val = str1.compareTo(str2); System.out.println(val); val = str1.compareTo(str3); System.out.println(val); val = str3.compareTo(str1); System.out.println(val); } }<p><strong>Итог</strong>:</p>
20 <p>На этом всё, очень надеемся, что этот материал будет вам полезен при сравнении строк в "Джава".</p>
20 <p>На этом всё, очень надеемся, что этот материал будет вам полезен при сравнении строк в "Джава".</p>
21 <p><em>При подготовке статьи использовалась публикация<a>"String Comparison in Java"</a>.</em></p>
21 <p><em>При подготовке статьи использовалась публикация<a>"String Comparison in Java"</a>.</em></p>
22 <p>Хотите знать больше? Приходите на курс!</p>
22 <p>Хотите знать больше? Приходите на курс!</p>
23  
23