Статьи

Топ 10 вопросов о строках Java

Ниже приведены 10 наиболее часто задаваемых вопросов о Java Strings .

1. Как сравнить строки? Использовать «==» или использовать равно ()?

Вкратце, «==» проверяет, равны ли ссылки, и equals () проверяет, равны ли значения. Если вы не хотите проверять, являются ли две строки одним и тем же объектом, вы всегда должны использовать equals ().

Было бы лучше, если бы вы знали концепцию интернирования строк .

2. Почему char [] предпочтительнее String для секретной информации?

Строки являются неизменяемыми , что означает, что после их создания они останутся без изменений, пока не будет запущен сборщик мусора. С массивом вы можете явно изменить его элементы. Таким образом, конфиденциальная информация (например, пароль) не будет присутствовать где-либо в системе.

3. Можем ли мы использовать строку для оператора switch?

Да, до версии 7. В JDK 7 мы можем использовать строку в качестве условия переключения. До версии 6 мы не можем использовать строку как условие переключения.

1
2
3
4
5
6
7
8
9
// java 7 only!
switch (str.toLowerCase()) {
      case "a":
           value = 1;
           break;
      case "b":
           value = 2;
           break;
}

4. Как конвертировать строку в int?

1
int n = Integer.parseInt("10");

Просто, но так часто используется и иногда игнорируется.

5. Как разделить строку символами пробела?

Мы можем просто сделать разбиение с помощью регулярного выражения. «\ S» обозначает пробельные символы, такие как «», «\ t», «\ r», «\ n».

1
String[] strArray = aString.split("\\s+");

6. Создает ли метод substring () новую строку?

Ответ — нет. Метод substring () предоставляет окно для массива символов, который представляет существующую строку, но не создает новую. Чтобы создать новую строку, вы можете добавить пустую строку, как показано ниже:

1
str.substring(m, n) + ""

Это создаст новую строку. Приведенный выше подход иногда может сделать ваш код быстрее, потому что сборщик мусора может собирать неиспользованную большую строку и сохранять только подстроку.

В 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.

1
2
3
String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd

9. Как преобразовать строку в дату?

1
2
3
4
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

10. Как посчитать количество вхождений символа в строку?

Используйте StringUtils из Apache Commons Lang.

1
2
int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);

Еще
Знаете ли вы, как определить, содержит ли строка только заглавные буквы ?

Статьи по Теме:

Ссылка: Топ 10 часто задаваемых вопросов о Java Strings от нашего партнера JCG Райана Вана в блоге Programcreek .