Подтвердить что ты не робот

Как обрезать строку после определенного символа в java

У меня есть строковая переменная в java со значением:

String result="34.1 -118.33\n<!--ABCDEFG-->";

Я хочу, чтобы моя последняя строка содержала значение:

String result="34.1 -118.33";

Как я могу это сделать? Я новичок в языке программирования Java.

Спасибо,

4b9b3361

Ответ 1

Вы можете использовать:

result = result.split("\n")[0];

Ответ 2

Предполагая, что вы просто хотите все до \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 не является значимым регулярным выражением, я просто использовал его, чтобы продемонстрировать, что работает второй подход.)

Ответ 3

Есть много хороших ответов, но я бы использовал StringUtils из commons-lang. Я нахожу StringUtils.substringBefore() более читаемым, чем альтернативы:

String result = StringUtils.substringBefore("34.1 -118.33\n<!--ABCDEFG-->", "\n");

Ответ 4

Использовать регулярное выражение:

result = result.replaceAll("\n.*", "");

replaceAll() использует regex для поиска своей цели, которую я заменил "ничего" - эффективно удалив цель.

Цель, которую я задал регулярным выражением \n.*, означает "новая строка char и все после"

Ответ 5

Как насчет

Scanner scanner = new Scanner(result);
String line = scanner.nextLine();//will contain 34.1 -118.33

Ответ 6

Вы можете использовать result = result.replaceAll("\n",""); или

 String[] split = result.split("\n");

Ответ 7

Попробуйте следующее:

String result = "34.1 -118.33\n<!--ABCDEFG-->";
result = result.substring(0, result.indexOf("\n"));

Ответ 8

Используйте Scanner и передайте разделитель и исходную строку:

result = new Scanner(result).useDelimiter("\n").next();

Ответ 9

Вы можете использовать StringTokenizer:

StringTokenizer st = new StringTokenizer("34.1 -118.33\n<!--ABCDEFG-->", "\n");
System.out.println(st.nextToken());

вывод:

34.1 -118.33