如何替换\。在java String中

时间:2013-05-09 06:02:44

标签: java

我想在\ java中用.替换String

示例src\main\java\com\myapp\AppJobExecutionListener

在这里,我希望得到src.main.java.com.myapp.AppJobExecutionListener

我尝试了str.replaceAll("\\","[.]")str.replaceAll("\\","[.]"),但它无效。

我仍然会收到原始字符串src\main\java\com\myapp\AppJobExecutionListener

11 个答案:

答案 0 :(得分:3)

String在Java中是不可变的,因此除非重新分配,否则在String对象上调用的任何方法都不会反映在它上面。

String s = "ABC";
s.replaceAll("B","D");
System.out.println(s); //still prints "ABC"
s = s.replaceAll("B","D");
System.out.println(s); //prints "ADC"

答案 1 :(得分:1)

将其分配回字符串str变量,。String#replaceAll不会更改字符串本身,它会返回一个新字符串。

str = str.replaceAll("\\\\",".")

答案 2 :(得分:1)

你可以试试这个:

String original = "Some text with \\ and rest of the text";
String replaced = original.replace("\\",".");

System.out.println(replaced);

答案 3 :(得分:1)

'\'字符在'\\'等字符串中加倍。因此,应使用'\\'字符将其替换为'。'角色以及使用 replace 代替 replaceAll 就足够了。这是一个样本;

public static void main(String[] args) {
    String myString = "src\\main\\java\\com\\vxl\\appanalytix\\AppJobExecutionListener";
    System.out.println("Before Replaced: " + myString);
    myString = myString.replace("\\", ".");
    System.out.println("After Replaced: " + myString);
}

这会给你:

Before Replaced: src\main\java\com\vxl\appanalytix\AppJobExecutionListener
After Replaced: src.main.java.com.vxl.appanalytix.AppJobExecutionListener

答案 4 :(得分:1)

使用String replaceAll(String regex, String replacement)

str = str.replaceAll("\\\\", ".");

使用String replace(char oldChar, char newChar)

str = str.replace('\\', '.');

String replace(CharSequence target, CharSequence replacement)

str = str.replace("\\", ".");

答案 5 :(得分:1)

目前您正在使用replaceAll,它采用正则表达式模式。这使得生活变得比它需要的复杂得多。除非您尝试使用正则表达式,否则只需使用String.replace

事实上,由于您只是将一个字符替换为另一个,您可以使用字符文字:

String replaced = original.replace('\\', '.');

\加倍,因为它是Java字符文字中的转义字符 - 但由于上面的使用正则表达式,因此句点没有特殊含义。

答案 6 :(得分:1)

已更换字符串= original.replace(' \','。');

试试这个效果很好

答案 7 :(得分:0)

使用替换代替 replaceall

String my_str="src\\main\\java\\com\\vxl\\appanalytix\\AppJobExecutionListener";
String my_new_str = my_str.replace("\\", ".");
System.out.println(my_new_str);

<强> DEMO AT IDEONE.COM

答案 8 :(得分:0)

replaceAll将正则表达式作为第一个参数。

要替换\你需要双重逃脱。你需要一个额外的\来逃避第一个。因为它是一个正则表达式输入,你需要再次逃避它们。正如其他答案所说,字符串是不可变的,因此您需要分配结果

 String newStr = str.replaceAll("\\\\", ".");

第二个参数不是正则表达式,所以你可以放。但请注意,如果使用replaceAll

,则需要四个斜杠来替换一个反斜杠

答案 9 :(得分:0)

我试过这个:

String s="src\\main\\java\\com\\vxl\\appanalytix\\AppJobExecutionListener";
    s = s.replace("\\", ".");
    System.out.println("s: "+ s);

输出:src.main.java.com.vxl.appanalytix.AppJobExecutionListener

答案 10 :(得分:-1)

只需将行更改为

即可
str = str.replaceAll("\\","."); 

编辑:我没有尝试过,因为这里的问题不在于它是否是正确的正则表达式,而是这里的问题是他没有将str分配给新的str值。无论如何,现在正在修正正则表达式。