如何去除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);
}
我正试图删除字符串末尾的一个白色 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);
}