Ниже приведены 10 наиболее часто задаваемых вопросов о Java Strings .
1. Как сравнить строки? Использовать «==» или использовать равно ()?
Вкратце, «==» проверяет, равны ли ссылки, и equals () проверяет, равны ли значения. Если вы не хотите проверять, являются ли две строки одним и тем же объектом, вы всегда должны использовать equals ().
Было бы лучше, если бы вы знали концепцию интернирования строк .
2. Почему char [] предпочтительнее String для секретной информации?
Строки являются неизменяемыми , что означает, что после их создания они останутся без изменений, пока не будет запущен сборщик мусора. С массивом вы можете явно изменить его элементы. Таким образом, конфиденциальная информация (например, пароль) не будет присутствовать где-либо в системе.
3. Можем ли мы использовать строку для оператора switch?
Да, до версии 7. В JDK 7 мы можем использовать строку в качестве условия переключения. До версии 6 мы не можем использовать строку как условие переключения.
|
4. Как конвертировать строку в int?
|
Просто, но так часто используется и иногда игнорируется.
5. Как разделить строку символами пробела?
Мы можем просто сделать разбиение с помощью регулярного выражения. «\ S» обозначает пробельные символы, такие как «», «\ t», «\ r», «\ n».
|
6. Создает ли метод substring () новую строку?
Ответ — нет. Метод substring () предоставляет окно для массива символов, который представляет существующую строку, но не создает новую. Чтобы создать новую строку, вы можете добавить пустую строку, как показано ниже:
|
Это создаст новую строку. Приведенный выше подход иногда может сделать ваш код быстрее, потому что сборщик мусора может собирать неиспользованную большую строку и сохранять только подстроку.
В Oracle JDK 7 substring () создает новую строку. Посмотрите на диаграмму, показывающую различие подстроки () между JDK 6 и JDK 7 .
7. Строка против StringBuilder против StringBuffer
String vs StringBuilder: StringBuilder является изменяемым, что означает, что вы можете изменить его после его создания.
StringBuilder vs StringBuffer: StringBuffer синхронизирован, что означает, что он потокобезопасен, но медленнее, чем StringBuilder.
8. Как повторить строку?
В Python мы можем просто умножить число на повторение строки. В Java мы можем использовать метод repeat () объекта StringUtils из пакета Apache Commons Lang.
|
9. Как преобразовать строку в дату?
|
10. Как посчитать количество вхождений символа в строку?
Используйте StringUtils из Apache Commons Lang.
|
Еще
Знаете ли вы, как определить, содержит ли строка только заглавные буквы ?
Статьи по Теме:
- Диаграмма, показывающая неизменность Java String
- Java-код — конвертировать файл в строку
- Зачем нам нужно тестирование программного обеспечения?
- Основы Java