E.g。我用的时候
C:\\a.txt
它工作正常,但是当我使用时
C:\a.txt
没有。
任何人解释两者之间的区别,除了说一个有效,另一个没有。
由于
答案 0 :(得分:6)
\
是一个用于转义其他特殊字符的特殊字符。因此,如果存在单个\
,则它被解释为字符串中的特殊字符,但由于没有任何东西可以逃脱,因此它被认为是“错误的用法”。
因此,必须使用第二个\
对\
进行转义,以使其具有字面含义。
答案 1 :(得分:2)
单个\
表示转义序列,它对编译器具有特定含义。 \\
基本上逃脱了转义序列。因此,如果您键入C:\a
,编译器会将\a
视为转义序列,这是您不想要的内容。
http://docs.oracle.com/javase/tutorial/java/data/characters.html
答案 2 :(得分:2)
在java中, \
符号保留用于与其他字符一起使用以制作特殊符号,例如
\n is new line
\t is a tab
因此,如果您在\
中使用一个 C:\a.txt
,则会认为\a
是一个特殊的字符,而使用\\
将是转换为\
答案 3 :(得分:0)
请记住:Backslash is NOT a path separator!
答案 4 :(得分:0)
它也很好用File.separator来获取运行JVM的操作系统所需的分隔符'/'或'\'(如果还有其他我不知道的话)。