我想用“+”替换字符串中的所有空白字符,用“ss”替换所有“ß”。。。它对“ß”很有效,但是eclipse不允许我使用\s作为空白。。我尝试了“\t”,但也不起作用。。我得到以下错误:
无效的转义序列(有效的是\b\t\n\f\r\“\”\)
这是我的代码:
try {
String temp1 = from.getText().toString();
start_from = temp1.replaceAll("ß", "ss");
start_from = start_from.replaceAll("\s", "+");
}
为什么不起作用?这是安卓、eclipse还是什么的问题?
提前谢谢!
3条答案
按热度按时间rsaldnfx1#
你需要逃离刀口
fnx2tebb2#
问题是
\
是java和正则表达式模式中的转义字符。如果要匹配正则表达式模式\n
,然后你就开始写了正则表达式模式最终不会被使用
\n
当前位置这将成为一条真正的新线,因为这就是"\n"
在java中是指。如果希望模式包含反斜杠,则需要确保转义该反斜杠,以便它不会被视为字符串中的特殊字符。j1dl9f463#
您可以使用java.util.regex.pattern类并使用
p = Pattern.compile("\s");
结合p.matcher(start_from).replaceAll("+")
. 或者,只需将“\s”元字符转义为“\s”。