Здесь упомянуты 10 самых задаваемых вопросов о строках в Java
![[Перевод] 10 самых задаваемых вопросов о строках в Java - 1](https://cdn.javarush.com/images/article/200514ae-2f76-48de-a3b3-a39635c19682/1024.jpeg)
-
Как сравнивать строки? Что использовать: "
==" илиequals()?Вкратце, "
==" сравнивает ссылки на строки, аequals()сравнивает значения, содержащиеся в этих строках. Если вы не хотите проверить, что две строки являются одним и тем же объектом, то вам следует использоватьequals().Также было бы неплохо знать концепцию пула строк.
Почему
char[]предпочтительнее строк (String) для защиты конфиденциальной информации?Строки неизменяемы. Это значит, что однажды созданная строка не будет изменяться до непосредственного запуска механизма сборщика мусора. В случае с массивом совершенно очевидно, что мы можем изменять его элементы. Таким образом, конфиденциальная информация (например, пароль) не будет храниться в открытом виде в любом месте программы.
Можем ли мы передавать строки в качестве параметра при использовании оператора switch?
Да, начиная с 7-ой версии JDK. Ранее в 6-ой версии, такой возможности не было.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }Как конвертировать строку в целочисленное значение?
int n = Integer.parseInt("10");Аналогично и для остальных примитивных типов Java.
Как разделить строку на строки с разделителем-пробелом?
Проще всего использовать регулярные выражения. "
\s" выступает как заменитель пробельных символов, таких как "", "\t", "\r", "\n".String[] strArray = aString.split("\\s+");<Что на самом деле делает метод
substring()?В JDK 6, метод
substring()показывал часть символов из существующей строки, но не создавал отдельного экземпляра строки. Чтобы создать новую строку, представленную в виде массива символов можно добавить какую-нибудь пустую строку, например, так:str.substring(m, n) + ""В результате мы получаем массив символов, являющийся нашей новой строкой. Такой подход иногда может сократить время выполнения кода, потому что сборщик мусора может уничтожить неиспользуемые большие строки и хранить только подстроки.
В Oracle JDK 7, метод
substring()создаёт новый массив символов, не используя уже существующий. Вы также можете взглянуть на диаграмму, представляющую разницу методов substring() в JDK 6 и JDK 7.String против StringBuilder против StringBuffer
StringпротивStringBuilder:StringBuilderизменяем, это значит, что мы можем изменить его содержание после создания объекта.StringBuilderпротивStringBuffer:StringBufferсинхронизирован, это значит, что он функционирует корректно при использовании из нескольких потоков одновременно, но медленнее чемStringBuilder.Как повторить строку несколько раз?
В Python, мы можем просто умножить строку на число
nи, тогда, она будет повторяться n раз. В Java, мы можем использовать методrepeat()из классаStringUtilsбиблиотеки Apache Commons Lang.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcdКак конвертировать строку в дату?
String str = "Sep 17, 2013"; Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str); System.out.println(date); //Tue Sep 17 00:00:00 EDT 2013Как посчитать количество вхождений определённого символа в строке?
Используйте класс
StringUtilsиз библиотеки Apache Commons Lang.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ