我想用“+”替换字符串中的所有空格字符,用“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", "+");
}
为什么不起作用?这是android,eclipse还是什么问题?
提前感谢!
答案 0 :(得分:60)
你需要逃避斜杠
start_from = start_from.replaceAll("\\s", "+");
答案 1 :(得分:9)
问题是\
是java 中的转义字符以及正则表达式模式。如果你想匹配正则表达式模式\n
,比如说,你会继续写下来
replaceAll("\n", "+");
正则表达式模式不会最终成为\n
:它会成为一个实际的换行符,因为这就是"\n"
在Java中的含义。如果您希望模式包含反斜杠,则需要确保转义该反斜杠,以便不将其视为字符串中的特殊字符。
replaceAll("\\s", "+");
答案 2 :(得分:1)
您可以使用java.util.regex.Pattern类,并将p = Pattern.compile("\s");
与p.matcher(start_from).replaceAll("+")
结合使用。或者,只需将“\ s”元字符转义为“\\ s”。