如何在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();