Ответ 1
Вы можете использовать:
result = result.split("\n")[0];
У меня есть строковая переменная в java со значением:
String result="34.1 -118.33\n<!--ABCDEFG-->";
Я хочу, чтобы моя последняя строка содержала значение:
String result="34.1 -118.33";
Как я могу это сделать? Я новичок в языке программирования Java.
Спасибо,
Вы можете использовать:
result = result.split("\n")[0];
Предполагая, что вы просто хотите все до \n
(или любую другую литеральную строку /char), вы должны использовать indexOf()
с substring()
:
result = result.substring(0, result.indexOf('\n'));
Если вы хотите извлечь часть перед определенным регулярным выражением, вы можете использовать split()
:
result = result.split(regex, 2)[0];
String result = "34.1 -118.33\n<!--ABCDEFG-->";
System.out.println(result.substring(0, result.indexOf('\n')));
System.out.println(result.split("\n", 2)[0]);
34.1 -118.33 34.1 -118.33
(Очевидно, что \n
не является значимым регулярным выражением, я просто использовал его, чтобы продемонстрировать, что работает второй подход.)
Есть много хороших ответов, но я бы использовал StringUtils
из commons-lang. Я нахожу StringUtils.substringBefore()
более читаемым, чем альтернативы:
String result = StringUtils.substringBefore("34.1 -118.33\n<!--ABCDEFG-->", "\n");
Использовать регулярное выражение:
result = result.replaceAll("\n.*", "");
replaceAll()
использует regex для поиска своей цели, которую я заменил "ничего" - эффективно удалив цель.
Цель, которую я задал регулярным выражением \n.*
, означает "новая строка char и все после"
Как насчет
Scanner scanner = new Scanner(result);
String line = scanner.nextLine();//will contain 34.1 -118.33
Вы можете использовать result = result.replaceAll("\n","");
или
String[] split = result.split("\n");
Попробуйте следующее:
String result = "34.1 -118.33\n<!--ABCDEFG-->";
result = result.substring(0, result.indexOf("\n"));
Используйте Scanner
и передайте разделитель и исходную строку:
result = new Scanner(result).useDelimiter("\n").next();
Вы можете использовать StringTokenizer:
StringTokenizer st = new StringTokenizer("34.1 -118.33\n<!--ABCDEFG-->", "\n");
System.out.println(st.nextToken());
вывод:
34.1 -118.33