Mic*_*ann 58
如果您使用的是JDK 11或更高版本,则应该使用stripTrailing().
使用正则表达式\s++$,可以用空字符串("")替换所有尾随空格字符(包括空格和制表符).
final String text = " foo ";
System.out.println(text.replaceFirst("\\s++$", ""));
Run Code Online (Sandbox Code Playgroud)
产量
foo
Run Code Online (Sandbox Code Playgroud)
这是正则表达式的细分:
\s - 任何空白字符,++ - 匹配前一个令牌中的一个或多个(占有); 即,匹配一个或多个空白字符.该+图案以其所有格形式使用 ++,当图案不匹配时,花费较少的时间来检测案例.$ - 字符串的结尾.因此,正则表达式将匹配尽可能多的空格,直接跟随字符串的结尾:换句话说,尾随空格.
如果您需要在以后扩展您的要求,那么对学习正则表达式的投入将变得更有价值.
参考
Tim*_*der 11
另一种选择是使用Apache Commons StringUtils,特别是StringUtils.stripEnd
String stripped = StringUtils.stripEnd(" my lousy string "," ");
Run Code Online (Sandbox Code Playgroud)
Ahm*_*mad 10
我java.lang.String.trim()稍微修改了原始方法,它应该工作:
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);
}
Run Code Online (Sandbox Code Playgroud)
测试:
Test test = new Test();
String sample = " Hello World "; // A String with trailing and leading spaces
System.out.println(test.trim(sample) + " // No trailing spaces left");
Run Code Online (Sandbox Code Playgroud)
输出:
Hello World // No trailing spaces left
Run Code Online (Sandbox Code Playgroud)
截至JDK11您可以使用stripTrailing:
String result = str.stripTrailing();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45098 次 |
| 最近记录: |