在将C#应用程序转换为Java的过程中,我遇到了String的TrimEnd方法.是否有等效的Java实现?我好像找不到一个.
我宁愿不用它替换它trim,因为我不想在此时改变程序的含义或操作,除非我必须这样做.
Pau*_*and 30
没有直接的等价物,但是如果要删除尾随空格,可以使用:
"string".replaceAll("\\s+$", "");
Run Code Online (Sandbox Code Playgroud)
\s是正则表达式字符集"whitespace",如果你只关心剥离尾随空格,你可以用空格字符替换它.如果你想使用更一般的trimEnd()形式,即删除任意一组尾随字符,那么你需要稍微修改它以使用:
"string".replaceAll("[" + characters + "]+$", "");
Run Code Online (Sandbox Code Playgroud)
请注意,第一个参数是通用正则表达式,因此如果您的其中一个characters是,]那么这需要是列表中的第一个字符.有关java正则表达式模式的完整描述,请查看javadoc.
你是否需要从.net 实现trimstart()方法,它几乎是相同的,但看起来像这样:
"string".replaceAll("^[" + characters + "]+", "");
Run Code Online (Sandbox Code Playgroud)
Bri*_*new 11
没有直接替代品.你可以使用regexps,或者Commons Lang StringUtils.stripEnd()方法.
小智 5
如果你重视性能(也许你的方法用在数千个字符串的循环中),那么你可以使用这个方法:
public String trimEnd(String value) {
int len = value.length();
int st = 0;
while ((st < len) && value.charAt(len - 1) == ' ') {
len--;
}
return value.substring(0, len);
}
Run Code Online (Sandbox Code Playgroud)
好消息!
它是在 Java 11 中添加的。
[JDK-8200378] String::strip, String::stripLeading, String::stripTrailing - Java 错误系统
strip()stripLeading()stripTrailing()| 归档时间: |
|
| 查看次数: |
14377 次 |
| 最近记录: |