Page 41 - 4657
P. 41
починається дана підстрока фрагментом, переданим методу як
параметр. Метод endsWith перевіряє чи збігається з параметром
кінець рядка.
Рівність
Метод equals і оператор == виконують дві зовсім різних
перевірки. Якщо метод equal порівнює символи усередині
рядків, то оператор == порівнює двох змінних посилань на
об'єкти і перевіряє, чи указують вони на різні чи об'єкти на той
самий. В черговому нашому прикладі це добре видно - уміст
двох рядків однаково, але, проте, це - різні об'єкти, так що equals
і == дають різні результати.
class EqualsNotEqualTo {
public static void main(String args[]) {
String s1 = "Hello";
String s2 = new String(s1);
System.out.println(s1 + " equals " + s2 + " -> " +
s1.equals(s2));
System.out.println(s1 + " == " + s2 + ", -> " +
(s1 == s2));
} }
От результат запуску цього приклада:
C:\> java EqualsNotEqualTo
Hello equals Hello -> true
Hello == Hello -> false
Упорядкування
Найчастіше буває недостатньо просто знати, чи є два рядки
ідентичними. Для програм, у яких потрібно сортування,
потрібно знати, яка з двох рядків менше іншої. Для відповіді на
це питання потрібно скористатися методом compareTo класу
String. Якщо ціле значення, повернуте методом, негативно, то
рядок, з яким був викликаний метод, менше рядка-параметра,
якщо позитивно - більше. Якщо ж метод compareTo повернув
значення 0, рядки ідентичні. Нижче приведена програма, у якій
39