Изучаем Java

Вы здесь: Главная >> Java-учебник >> Проверка строк на равенство

Проверка строк на равенство в языке Java


Чтобы проверить, совпадают ли две строки, следует использовать метод equals; вызов метода
s . equals (t)
возвращает значение true, если строки s и t равны между собой, в противном случае он возвращает значение false.
Отметим, что строки s и t могут быть как перемен­ными, так и константами. Например, выражение
"Hello!".equals(command) ;
вполне допустимо.

Чтобы проверить идентичность строк, игнорируя различие между прописными и строчными буквами, следует использовать метод equalslgnoreCase.
"Hello".equalslgnoreCase("hello");

Для проверки строк на равенство нельзя применять оператор = =!
Он проверяет лишь, хранятся ли обе строки в одной и той же области памяти. Разумеется, если обе строки хранятся в одном и том же месте, они должны совпадать между собой.
Однако вполне возможна ситуация, при которой идентичные строки хранятся в разных местах.

String greeting = "Hello"; // Инициализирует переменную
// greeting строкой.
if (greeting = "Hello") ...
// Возможно, это условие истинно,
if (greeting.substring (0, 4) = = "Hell") ...// Возможно, это условие ложно.

Если виртуальная машина всегда позволяет совместно использовать одинаковые строки, то для проверки их равенства можно применять оператор = =. Однако совме­стно использовать можно лишь константы, а не строки, являющиеся результатами та­ких операций, как + или substring. Следовательно, либо нужно навсегда отказаться от проверок строк на равенство с помощью оператора = =, либо вы получите про­грамму, содержащую наихудшую из возможных ошибок — перемежающуюся ошибку, появление которой невозможно предсказать.

Класс String в языке Java содержит более 50 методов. Неожиданно большое ко­личество из них оказались полезными, так что можно легко себе представить, что они используются довольно часто. Приведенное ниже замечание об интерфейсе API со­держит наиболее полезные из них.

Информация об интерфейсе API разбросана по всей книге для того, чтобы дать вам представление о интерфейсе прикладных программ на языке Java (Java Application Programming Interface — API).

Каждое такое замечание начинается с имени класса, например, java. lang.string — значение так называемого име­ни пакета разъясняется в главе 5.
После имени класса указываются имена, пояс­нения и описание параметров одного или нескольких методов. Обычно в замечании не перечисляются все методы отдельного класса. Вместо этого из них выбираются и подробно описываются наиболее часто используемые методы. Полный список методов можно найти в оперативной документации о классе.

java. lang.string 1.0

Чтение оперативной документации об интерфейсе API

Как вы только что убедились, класс String имеет много методов. Более того, в стандартной библиотеке существует несколько сотен классов, и которых еще больше методов. Совершенно невозможно запомнить все полезные классы и методы. Следо­вательно, очень важно уметь пользоваться оперативной документацией об интерфей­се API, чтобы при необходимости в стандартной библиотеке можно было найти все классы и методы. Документация об интерфейсе API является составной частью набо­ра инструментальных средств Java SDK. Она записана в HTML-формате. Установите ваш броузер на подкаталог docs/api/index/html в каталоге, в котором установлен ваш пакет Java SDK. Вы увидите экран, показанный на рис. 3.2.

Экран разделен на три окна. В небольшом окне в правом левом приведены все доступные пакеты. Под ним в окне побольше перечислены все классы. Щелкните кнопкой мыши на любом из имен классов, и соответствующая документация об ин­терфейсе API будет показана в большом окне справа (рис. 3.3). Например, чтобы по­лучить больше информации о методах класса String, прокрутите окно, пока не уви­дите ссылку String. Щелкните на ней.

Затем прокрутите окно вправо, пока не увидите краткое описание всех методов, упорядоченных в алфавитном порядке (рис. 3.4). Щелкните мышью на имени этого метода, чтобы получить его детальное описание (рис. 3.5).
Например, если вы щелк­нете мышью на ссылке compareToIgnoreCase, то получите описание метода compareToIgnoreCase.

Рис. 3.2 Три окна с документацией по API.

Рис. 3.3 Описание класса String

Рис. 3.4 Сводка методов класса String

Рис. З.5. Детальное описание метода CompareTolgnoreCase класса String


Партнеры сайта