如何在java中的特定字符之后修剪字符串
我在java中有一个字符串变量值:
String result="34.1 -118.33\n";
我希望我的最后一个字符串包含值:
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"; 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
不是一个有意义的正则表达式,我只是用它来certificate第二种方法也有效。)
有很多好的答案,但我会使用commons-lang的 StringUtils
。 我发现StringUtils.substringBefore()
比替代方案更具可读性:
String result = StringUtils.substringBefore("34.1 -118.33\n", "\n");
使用正则表达式:
result = result.replaceAll("\n.*", "");
replaceAll()
使用正则表达式找到它的目标,我用“无”替换它 – 有效地删除了目标。
我用正则表达式指定的目标\n.*
表示“新行字符和之后的所有内容”
怎么样
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"; result = result.substring(0, result.indexOf("\n"));
使用Scanner
并传入分隔符和原始字符串:
result = new Scanner(result).useDelimiter("\n").next();