我有String
存储路径。当我打印路径时,它就像:D:\UnderTest\wavtester.wav
。在这个字符串中,我想知道最后一次出现\
字符的索引(目标是获取String
中代表的文件名,所以我试图使用该方法:
int x = nameOfAudioFile.lastIndexOf('\');
但是我收到了与此声明相对应的错误:unclosed character literal
答案 0 :(得分:6)
\
字符在字符和字符串常量中有特殊功能,因此您需要将其转义为将其自身编写为字符文字:string.lastIndexOf('\\')
。
实际上,为了便于移植,您可能希望使用File.separatorChar
而不是显式字符常量。这样,您就可以在unix而不是/
上获得\
。
答案 1 :(得分:3)
import java.io.File;
class FileString {
public static void main(String[] args) {
String fileName = "D:\\UnderTest\\wavtester.wav";
System.out.println(fileName);
File f = new File(fileName);
System.out.println("Name: \t" + f.getName());
System.out.println("Path: \t" + f.getParent());
System.out.println("Exist: \t" + f.exists());
}
}
D:\UnderTest\wavtester.wav
Name: wavtester.wav
Path: D:\UnderTest
Exist: false
Press any key to continue . . .
这不是你问题的答案,它甚至不是 问题的答案,而只是我能提供的最佳建议,而不是知道实际问题是什么。 ;)
答案 2 :(得分:1)
您需要添加另一个\。你正在逃避'单身',所以你应该看起来像; nameOfAudioFile.lastIndexOf( '\\')