Java 如何替换斜杠

Java 如何替换斜杠,java,Java,我想用双斜线替换路径中的单斜线,但不影响双斜线。 我尝试了以下方法: string oldPath = "\\new\new1\new2\"; string newPath = old.replace("\\", "\\\\"); 我的预期结果是newPath如下所示: "\\new\\new1\\new2\\" 这是因为\n被解释为新行。再逃一次 无论如何,最好使用java.nio.file.Path而不是字符串来处理文件和目录路径。另外,使用System.getPropertyfile.

我想用双斜线替换路径中的单斜线,但不影响双斜线。 我尝试了以下方法:

string oldPath = "\\new\new1\new2\";
string newPath = old.replace("\\", "\\\\");
我的预期结果是newPath如下所示:

"\\new\\new1\\new2\\"
这是因为\n被解释为新行。再逃一次

无论如何,最好使用java.nio.file.Path而不是字符串来处理文件和目录路径。另外,使用System.getPropertyfile.separator处理文件分隔符\\/

在基于unix的系统上,路径分隔符为/:

首先,旧路径在Java中不是有效字符串。它以\结尾,这是一个特殊字符,后面必须跟一些东西。让我们假设它最后应该是\\

除此之外,正如注释中提到的@Jens,\n是一个新行符号,因此java将您的字符串理解为\newnew\u linew1new\u linew2\

现在,如果希望结果显示为\\new\\new1\\new2\\n,则需要使用

String newPath = old.replace("\\", "\\\\").replace("\n", "\\\\n");

请注意,在这种情况下,替换方法的顺序很重要。

出现了什么错误?请显示实际的可运行代码,尤其是输入字符串。如果字符串实际包含\n,则没有\n可替换。\n是新行字符。因此,您的字符串类似于\newnewlineew1 newlineew2我没有收到任何错误,它不是用斜杠替换的。请更新您的问题,而不是将更多信息放入注释中!回答得好。唯一的问题是您的newPath将是/////new//new1//new2;在我写评论之前我做了。不作为测试,但newPath在控制台中打印为\\\\new\\new1\\new2.0。也许你在Windows上?对我来说,测试用例成功了,输出是///new//new1//new2是的,这里是Windows。我很惊讶它竟然试图替换,因为文件分隔符打印为\并且在oldPath中没有这样的符号。。。一些奇怪的翻译是在幕后进行的。
String newPath = old.replace("\\", "\\\\").replace("\n", "\\\\n");