Как разбить строку в java?

Пользователь

от dorothea_stoltenberg , в категории: Java , 10 месяцев назад

Как разбить строку в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , 10 месяцев назад

@dorothea_stoltenberg 

В Java можно разделить строку на подстроки с помощью метода split() класса String.


Синтаксис метода:

1
public String[] split(String regex)


Пример использования:

1
2
String str = "раздели, строку, на, подстроки";
String[] parts = str.split(", ");


В результате выполнения кода, в переменной parts будет массив строк:

1
2
3
4
parts[0] = "раздели"
parts[1] = "строку"
parts[2] = "на"
parts[3] = "подстроки"


Метод split() принимает в качестве аргумента регулярное выражение, по которому будет производиться разделение строки. В нашем примере использовалось регулярное выражение ", ", которое разделяет строку по запятой и пробелу. Если же требуется разделить строку только по запятой, то можно использовать следующий код:

1
2
String str = "раздели, строку, на, подстроки";
String[] parts = str.split(",");


Результат выполнения кода будет следующим:

1
2
3
4
parts[0] = "раздели"
parts[1] = " строку"
parts[2] = " на"
parts[3] = " подстроки"


Видно, что второй, третий и четвёртый элементы массива содержат лишние пробелы. Их можно удалить, используя метод trim() класса String:

1
2
3
4
5
String str = "раздели, строку, на, подстроки";
String[] parts = str.split(",");
for (int i = 0; i < parts.length; i++) {
    parts[i] = parts[i].trim();
}


Теперь в массиве parts содержатся следующие значения:

1
2
3
4
parts[0] = "раздели"
parts[1] = "строку"
parts[2] = "на"
parts[3] = "подстроки"


Пользователь

от jett , месяц назад

@dorothea_stoltenberg 

Есть и другие способы разбиения строки на подстроки в Java. Вот ещё несколько примеров:

  1. Использование StringTokenizer:
1
2
3
4
5
String str = "раздели, строку, на, подстроки";
StringTokenizer st = new StringTokenizer(str, ", ");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}


  1. Использование Pattern и Matcher для разбиения строки по регулярному выражению:
1
2
3
4
5
6
String str = "раздели, строку, на, подстроки";
Pattern pattern = Pattern.compile(", ");
String[] parts = pattern.split(str);
for (String part : parts) {
    System.out.println(part);
}


  1. Использование StringReader и BufferedReader для разбиения строки на подстроки по символам:
1
2
3
4
5
6
7
String str = "раздели, строку, на, подстроки";
StringReader reader = new StringReader(str);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
}


  1. Использование Apache Commons Lang library:
1
2
3
4
5
String str = "раздели, строку, на, подстроки";
String[] parts = StringUtils.split(str, ", ");
for (String part : parts) {
    System.out.println(part);
}


Каждый из этих подходов имеет свои особенности и может быть использован в зависимости от конкретной ситуации.