Java 字符串替换输入的路径:"\&引用;至/&引用;

Java 字符串替换输入的路径:"\&引用;至/&引用;,java,jakarta-ee,Java,Jakarta Ee,考虑以下代码: class Sample{ public static void main(String args[]){ String text1="C:\Documents\User\sample"; String text2=text1.replace('\','/'); System.out.println(text2); } } 我有一个输入,其中text1接收一个文件路径。现在我想将text1中的所有“\”替换为“/”。我已经使用了上面的

考虑以下代码:

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

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

    System.out.println(text2);
        }
}
我有一个输入,其中text1接收一个文件路径。现在我想将text1中的所有“\”替换为“/”。我已经使用了上面的代码

首先,显示的错误是:“非法转义序列”,这是可以理解的,不是我的问题,因为我正在制作一个JavaEE应用程序,其中用户在输入框中输入路径


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

您需要转义反斜杠:

String text2=aa.replace('\\','/');
顺便说一句,
replaceAll()
会使您的问题更加复杂:现在您处理的是正则表达式而不是简单的字符串替换,这意味着您的反斜杠需要在正则表达式引擎中再次转义:

String text2=aa.replaceAll("\\\\", "/");

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

String text2 = text1.replace('\\', '/');
是如何正常使用此字符的一个很好的示例

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

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

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

replaceAll(string regex,string replacement)用于字符串,而您的用于CharSequences。您可以尝试(“\\”,“/”)吗?关于错误指定的路径,这一点非常好!当前的一个可能会工作,但是
“C:\Documents\User\new”
会非常失败。@Serdalis:谢谢。但我的情况是,我正在创建一个网页,其中用户以上述格式(c:\documents\user\sample)输入路径。@Rishu:当用户输入路径时,反斜杠将自动加倍。因此,serdalis或我的解决方案将正常工作。