搜索发生的\

时间:2011-08-11 11:22:43

标签: java string file

我有String存储路径。当我打印路径时,它就像:D:\UnderTest\wavtester.wav。在这个字符串中,我想知道最后一次出现\字符的索引(目标是获取String中代表的文件名,所以我试图使用该方法:

int x = nameOfAudioFile.lastIndexOf('\');

但是我收到了与此声明相对应的错误:unclosed character literal

  • 这个错误是什么意思?
  • 如何解决此错误?

3 个答案:

答案 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( '\\')