如何去除java中字符串末尾的白色space?

How to remove a white space at the end of a string in java?

我正试图删除字符串末尾的一个白色 space。 例如。 我希望“XXXX”成为“XXXX”。 java 中的 trim() 方法删除所有前导和尾随白色space。

任何帮助将不胜感激:)

如果您只想在末尾 trim 空格,请使用 String#replaceAll() 和适当的正则表达式:

String input = " XXXX ";
String output = input.replaceAll("\s+$", "");
System.out.println("***" + input + "***");   // *** XXXX ***
System.out.println("***" + output + "***");  // *** XXXX***

如果您真的只想替换末尾的 一个 空白字符,请替换为 \s$ 而不是 \s+$.

String#stripTrailing()

因为 Java 11,String 有一个内置的方法来做到这一点:String#stripTrailing()

可以这样用

String input = " XXX ";
String output = input.stripTrailing();

请注意,除了 String.trim(),此方法会删除字符串末尾的任何 whitespace,而不仅仅是空格。

试试这个解决方案:

public String trim(String str) { 
 int len = str.length(); 
 int st = 0; 

 char[] val = str.toCharArray(); 

 while ((st < len) && (val[len - 1] <= ' ')) { 
  len--; 
 } 
 return str.substring(st, len); 
}