Java没有';无法使用regex\s,表示:转义序列无效

Java没有';无法使用regex\s,表示:转义序列无效,java,android,regex,whitespace,Java,Android,Regex,Whitespace,我想用“+”替换字符串中的所有空白字符,用“ss”替换所有“ß”。。。它对“ß”很有效,但是eclipse不允许我使用\s作为空白。。我尝试了“\t”,但也不起作用。。我得到以下错误: 无效的转义序列(有效的) 是\b\t\n\f\r\“\”\) 这是我的代码: try { String temp1 = from.getText().toString(); start_from = temp1.replaceAll("ß", "ss"); start_from = s

我想用“+”替换字符串中的所有空白字符,用“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还是什么的问题


提前感谢!

您需要避开斜杠

start_from  = start_from.replaceAll("\\s", "+");

问题是
\
在java和正则表达式模式中都是转义字符。如果您想匹配正则表达式模式
\n
,您可以继续编写

replaceAll("\n", "+");
正则表达式模式最终不会是
\n
:它将是一个实际的换行符,因为这在Java中是
“\n”
的意思。如果希望模式包含反斜杠,则需要确保转义该反斜杠,以便它不会被视为字符串中的特殊字符

replaceAll("\\s", "+");

您可以使用java.util.regex.Pattern类,并结合使用
p=Pattern.compile(“\s”)
p.matcher(从.replaceAll(“+”)开始)。或者,只需将“\s”元字符转义为“\\s”。

谢谢!很棒的网站!:-”您无法在11分钟内接受答案" .... ;-)我很惊讶您甚至可以用字符串文字编译\s。在字符串文字中添加\t将创建包含制表符的正则表达式,而不是包含\t的正则表达式,因为您需要在字符串文字中添加\\t。我无法编译它,。。eclipse给了我这个我发布的错误消息。我只是想让你知道我想做什么。jepp我已经在代码的另一部分中使用了一个模式,但是,我认为在这种情况下使用replaceAll(…)会更容易。谢谢!