Использование метода разделения в java для разделения "Smith, John (111) 123-4567"
на "John"
"Smith"
"111"
. Мне нужно избавиться от запятой и круглых скобок. Это то, что у меня есть, но это не разбивает струны.
// split data into tokens separated by spaces
tokens = data.split(" , \\s ( ) ");
first = tokens[1];
last = tokens[0];
area = tokens[2];
// display the tokens one per line
for(int k = 0; k < tokens.length; k++) {
System.out.print(tokens[1] + " " + tokens[0] + " " + tokens[2]);
}
2 ответа
Также можно решить, используя регулярное выражение для анализа ввода:
String inputString = "Smith, John (111) 123-4567";
String regexPattern = "(?<lastName>.*), (?<firstName>.*) \\((?<cityCode>\\d+)\\).*";
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(inputString);
if (matcher.matches()) {
out.printf("%s %s %s", matcher.group("firstName"),
matcher.group("lastName"),
matcher.group("cityCode"));
}
Вывод: John Smith 111
Похоже, что функция string.split
не умеет разбивать значение параметра на отдельные строки соответствия регулярного выражения.
Если мне неизвестна недокументированная функция функции Java string.split () (документация здесь), ваш параметр функции разделения пытается разбить строку на все значение", \\ s () ", которое не буквально присутствует в строке операнда.
Я не могу проверить ваш код в среде выполнения Java, чтобы ответить, но я думаю, вам нужно разделить операцию разделения на отдельные операции разделения, например:
data = "Last, First (111) 123-4567";
tokens = data.split(",");
//tokens variable should now have two strings:
//"Last", and "First (111) 123-4567"
last = tokens[0];
tokens = tokens[1].split(" ");
//tokens variable should now have three strings:
//"First", "(111)", and "123-4567"
first = tokens[0];
area = tokens[1];
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].