3

考虑以下代码:

class Sample{
public static void main(String args[]){
    String text1="C:\Documents\User\sample";

    String text2=text1.replace('\','/');

    System.out.println(text2);
        }
}

我有一个输入,其中 text1 正在接收文件路径。现在我想将 text1 中的所有“\”替换为“/”。我已经使用了上面的代码。

首先,显示的错误是:“Illegal Escape Sequence”,这是可以理解的,不是我的问题,因为我正在制作一个 Java EE 应用程序,用户在输入框中输入路径。

但是我无法将“\”更改为“/”,这对于我的代码正常运行至关重要。我无法解决这个问题。我什至尝试过使用 String.replaceAll() 方法,但没有结果。

4

2 回答 2

5

您需要转义反斜杠:

String text2=aa.replace('\\','/');

顺便说一句,replaceAll()这会使您的问题更加复杂:现在您正在处理正则表达式而不是简单的字符串替换,这意味着您的反斜杠需要再次转义以用于正则表达式引擎:

String text2=aa.replaceAll("\\\\", "/");
于 2012-09-02T14:30:51.597 回答
2

\是 java 字符串中的转义字符,您需要通过 do 对其进行转义\\,这将防止它转义'旁边的字符,并解决您的错误。这会将您的代码行变成:

String text2 = text1.replace('\\', '/');

是一个很好的例子,说明了如何正常使用这个字符。

从它的外观来看,您最好也执行以下操作:

String text1="C:\\Documents\\User\\sample";

而不是在字符串初始化后替换。

于 2012-09-02T14:30:56.433 回答