我正在尝试Java中的以下代码,我需要用正斜杠替换反斜杠,但我不能。
package superpkg;
import java.util.regex.Matcher;
final public class Super
{
public static void main(String[] args)
{
String string="xxx\\aaa";
string.replaceAll("\\\\", "/");
System.out.println(string);
string.replaceAll(Matcher.quoteReplacement("\\"), "/");
System.out.println(string);
}
}
在这两种情况下,它都会显示以下输出。
xxx\aaa
xxx\aaa
表示给定字符串中的反斜杠未按预期替换为正斜杠。如何实现?
答案 0 :(得分:8)
字符串在Java中是不可变的。您需要在某处分配replaceAll
的结果:
string = string.replaceAll("\\\\", "/");
答案 1 :(得分:5)
字符串是不可变的,所以你需要做
string = string.replaceAll("\\\\", "/");
答案 2 :(得分:3)
您没有为string
分配新值。
请改为string = string.replaceAll("\\\\", "/");
答案 3 :(得分:2)
字符串是不可变的。没有任何意思可以就地修改字符串,每个调用String的方法都会返回一个新的字符串。
在你的代码中,string.replaceAll(...)返回一个String,但你不会将它重新分配给你的“string”变量,所以结果会丢失。 请改用:
public class Test {
public static void main(String[] args) {
String string = "xxx\\aaa";
string = string.replace("\\", "/");
System.out.println(string);
}
}
答案 4 :(得分:1)
java.lang.String
是不可变的。
因此,您应该将API调用的结果分配给新变量。
答案 5 :(得分:0)
public static void main(String[] args)
{
String string="xxx\\aaa";
string = string.replaceAll("\\\\", "/");
System.out.println(string);
}