为什么:0在语句是 for 时被替换.0?
我在 Intellij 以及在线编译器上使用:x&.x和 进行了尝试gdb,但此问题仍然存在。
public class Main
{
public static void main(String[] args)
{
String s = "Hello:0, World:0.0, het:0";
System.out.println(s);
s = s.replaceAll(".0,", ",");
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Hello:0, World:0.0, het:0
Hello, World:0, het:0
Run Code Online (Sandbox Code Playgroud)
And*_*ner 12
.表示“任何字符”,因为replaceAll使用正则表达式。
replace如果要替换文字字符串,请改用:
s = s.replace(".0,", ",");
Run Code Online (Sandbox Code Playgroud)
或者,您可以.通过添加前缀\或使用以下Pattern.quote方法来转义:
s = s.replaceAll("\\.0,", ",");
s = s.replaceAll(Pattern.quote(".0,"), ",");
Run Code Online (Sandbox Code Playgroud)