Иллюстрированный самоучитель по Java


         

Как сравнить строки


Операция сравнения

==

сопоставляет только ссылки на строки. Она выясняет, указывают ли ссылки на одну и ту же строку. Например, для строк

String s1 = "Какая-то строка"; 

String s2 = "Другая-строка";

сравнение

s1 == s2

дает в результате

false

.

Значение

true

получится, только если обе ссылки указывают на одну и ту же строку, например, после присваивания

si = s2

.

Интересно, что если мы определим

s2

так:

String s2 == "Какая-то строка";

то сравнение

s1 == s2

даст в результате

true

, потому что компилятор создаст только один экземпляр константы "Какая-то строка" и направит на него все ссылки.

Вы, разумеется, хотите сравнивать не ссылки, а содержимое строк. Для этого есть несколько методов.

Логический метод

equals (object obj)

, переопределенный из класса

object

, возвращает

true

, если аргумент

obj

не равен

null

, является объектом класса

string

, и строка, содержащаяся в нем, полностью идентична данной строке вплоть до совпадения регистра букв. В остальных случаях возвращается значение

false

.

Логический метод

equalsIgnoreCase(object obj)

работает так же, но одинаковые буквы, записанные в разных регистрах, считаются совпадающими.

Например,

s2.equals("другая строка")

даст в результате

false

, а

s2.equalsIgnoreCase("другая строка")

возвратит

true

.

Метод

compareTo(string str)

возвращает целое число типа

int

, вычисленное по следующим правилам:

Сравниваются символы данной строки

this

и строки

str

с одинаковым индексом, пока не встретятся различные символы с индексом, допустим

k

, или пока одна из строк не закончится.

В первом случае возвращается значение

this.charAt(k) - str.charAt(k),

т. е. разность кодировок Unicode первйх несовпадающих символов.

Во втором случае возвращается значение

this.length() - str.length()

, т. е. разность длин строк.

Если строки совпадают, возвращается 0.

Если значение

str



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий