Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转义java字符串文本中的反斜杠_Java_String_Escaping_Backslash - Fatal编程技术网

转义java字符串文本中的反斜杠

转义java字符串文本中的反斜杠,java,string,escaping,backslash,Java,String,Escaping,Backslash,我在使用Java一段时间后发现了这个问题: 我在windows中使用硬编码路径,如 "D:\Java-code\JavaProjects\workspace\eypros\src" 问题是我需要对反斜杠字符进行转义,以便将其与字符串一起使用。因此,我手动转义每个反斜杠: "D:\\Java-code\\JavaProjects\\workspace\\eypros\\src" 是否有一种方法可以自动获取未转义的路径并返回转义的java字符串 我在想,也许除了java字符串之外的另一个容器可以

我在使用Java一段时间后发现了这个问题: 我在windows中使用硬编码路径,如

"D:\Java-code\JavaProjects\workspace\eypros\src"
问题是我需要对反斜杠字符进行转义,以便将其与字符串一起使用。因此,我手动转义每个反斜杠:

"D:\\Java-code\\JavaProjects\\workspace\\eypros\\src"
是否有一种方法可以自动获取未转义的路径并返回转义的java字符串

我在想,也许除了java字符串之外的另一个容器可以做到这一点(但我不知道)

有什么建议吗

public static String escapePath(String path)
{
    return path.replace("\\", "\\\\");
}
\
是双倍的,因为它也必须在这些字符串中转义

无论如何,我认为您应该使用
System.getProperty(“file.separator”)而不是
\


另外,
java.io.File
还有一些对文件系统路径有用的方法。

只使用前斜杠有什么坏处吗?你说的“获取”未扫描的路径是什么意思?毕竟,这只是源代码中的一部分——如果您有用户输入,就不需要逃避它。关于
System.getProperty(“file.separator”)处理许多依赖于系统的问题,如果您走这条路(但不是全部),您将会遇到这些问题。是否有特殊原因要将程序锁定到windows?就我个人而言,我会将您的所有用户文件放在主目录中,您可以在主目录中获取,而无需任何系统特定的代码Java接受正斜杠
/
作为跨平台文件分隔符。因此,在
Windows
平台上使用也是安全的。此代码可以正常工作。但是这个代码真的需要吗?只有在硬编码路径时,才需要避开后斜杠。如果您是硬编码,那么无论如何,您需要手动编码“\”…我不知道用户的用例。也许他正在从一个客户端可以修改的文件中读取这些路径。顺便说一下,如果您使用replaceAll而不是replace,它会给您一个错误。检查原因和解决方案(replaceAll(“\\\\”,“\\\\\\”)[此处][链接]:[链接][