Как правильно сравнить две строки в Java?
Метод
equals
проверяет – совпадают ли строки.boolean equals (Object o) String s = "cat"; boolean test1 = s.equals("cat");//true boolean test2 = s.equals("Cat");//false boolean test3 = s.equals("c"+"a"+"t");//true
Как правильно сравнить две строки в Java игнорируя регистр букв?
Метод
equalsIgnoreCase
– совпадают ли строки, игнорируя регистр букв.boolean equalsIgnoreCase (String str) String s = "cat"; boolean test1 = s.equalsIgnoreCase("cat");//true boolean test2 = s.equalsIgnoreCase("Cat");//true boolean test3 = s.equalsIgnoreCase("cAT");//true
Как отсортировать список строк в алфавитном порядке?
Используя метод
Collections.sort()
.ArrayList list = new ArrayList<>(); list.add("zas"); list.add("fas"); list.add("sd"); list.add("asdg"); Collections.sort(list);
В какой кодировке хранятся строки в Java?
Строки в java хранятся в Unicode.
Как преобразовать строку в кодировку Windows-1251?
String utf8 = "text"; byte[] bytes1251 = utf8.getBytes("windows-1251"); String win1251 = new String(bytes1251,"windows-1251");
Как разбить строку на отдельные слова?
String[] split(String regex)
StringTokenizer:
String s = "Good news everyone!"; StringTokenizer tokenizer = new StringTokenizer(s,"ne"); while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); System.out.println(token); }
Как развернуть строку задом наперед?
String s = "Bender"; StringBuilder s2 = new StringBuilder(s); s2.reverse(); //будет "redneB";
Что происходит, когда мы пишем "A"+"b"+"C"?
Примерно следующее:
new StringBuilder().append("A").append("b").append("C").toString();
Что такое
mutable
иimmutable
типы?Объекты, которые после их создания изменить нельзя, называются неизменяемыми или
immutable
.Объекты, которые после создания можно изменить, называются изменяемыми или
mutable
.Что дает типу
String
то, что его сделалиimmutable
?Безопасность.
String
широко используется, как параметр для многих классов Java, в частности для открытия сетевых соединений, подключений к БД, открытию файлов и пр. И если бы строка изменялась, то мы могли получить доступ к объекту (файлу например), на который мы имеем право, затем изменить строку с именем (случайно или намеренно) и получить доступ уже к другому файлу.Так же
String
используется в механизме загрузки файлов, и это – фундаментальный аспект. И если бы строка изменялась, то запрос на загрузку "java.io.Writer" мог бы быть изменён на "DiskErasingWriter".Hashcode
Из-за того, что строка не изменяется, она кэширует свой хэшкод и не вычисляет его каждый раз, когда мы его вызываем, что делает строку очень быстрой как ключ для
hashmap
.Многопоточность
immutable
делает экземпляры строк потокобезопасными.
zor07
31 уровень
Это разве не про конкатенацию вопрос?
Где «cat» это строковый литерал, который помещается сразу в пул. Если мы сравниваем строковый литерал с строковым литералом, это можно делать так ==, что гораздо быстрее. Если же мы сравниваем не с строковым литералом, а, допустим, с результатом ввода, то сравнивать нужно так:
Дабы избежать NPE