我正在尝试删除所有行末尾的所有空格和制表符。
我使用以下方法:
string.replace("\\s+$", "");
这里,“\ s + $”是正则表达式
似乎是对的。但事实是我不会删除它。
字符串是:
a) AAAAAA.
b) BBBBB.
c) CCCCCC.
d) DDDDD.
答案 0 :(得分:4)
像这样:
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()
将修改字符串a
。 Java中的字符串是不可变的(它们不能改变)。 a.replaceAll()
将返回修改后的字符串。
EDIT2 :如果您使用的是多行字符串,"\\s+[$\n]"
正则表达式应该可以正常工作。
答案 1 :(得分:3)
使用replaceAll()
,使用正则表达式查找其目标,而不是使用纯文本作为目标的replace()
。
str = str.replaceAll("(?m)\\s+$", "");
在这里,我添加了(?m)
开关,在换行之前/之后使得克拉和美元匹配,在多线输入的情况下,您需要使其完成。
答案 2 :(得分:-1)
Delete all the space at end of each line in Java
我猜你需要String#trim()方法
使用
string.trim()
返回字符串的副本,省略前导和尾随空格。