我正在尝试删除所有行末尾的所有空格和制表符。
我使用以下方法:
string.replace("\\s+$", "");
这里,"\s+$" 是一个正则表达式
看来是对的。但事实是我不会删除它。
字符串是:
a) AAAAAA.
b) BBBBB.
c) CCCCCC.
d) DDDDD.
像这样:
string.replaceAll("\\s+$", "");
String#replace()
不采用正则表达式作为参数。\s
编辑:是的,它确实有效:
public static void main(final String[] args) {
final String a = " AAAAAAAA ";
System.out.println(a.replaceAll("\\s+$", ""));
}
也许您的困惑是您认为a.replaceAll()
会修改 String a
。Java 中的字符串是不可变的(它们不能更改)。a.replaceAll()
将返回修改后的字符串。
EDIT2:如果您使用的是多行字符串,"\\s+[$\n]"
则正则表达式应该可以完成工作。
Use replaceAll()
,它使用正则表达式来查找其目标,而不是replace()
,它使用纯文本作为其目标。
str = str.replaceAll("(?m)\\s+$", "");
在这里,我添加了(?m)
使克拉和美元在换行符之前/之后匹配的开关,您需要在多行输入的情况下使其工作。
Delete all the space at end of each line in Java
我猜你需要String#trim()方法
利用
string.trim()
返回字符串的副本,省略前导和尾随空格。