Поиск вхождения \ - PullRequest
       1

Поиск вхождения \

1 голос
/ 11 августа 2011

У меня есть String, в котором хранится путь. Когда я печатаю путь, это похоже на: D:\UnderTest\wavtester.wav. В этой строке я хотел узнать индекс последнего вхождения символа \ (цель - получить имя файла , представленного в String), поэтому я попытался использовать метод :

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

Но я получаю ошибку, соответствующую этому утверждению, говорящую: unclosed character literal

  • Что означает эта ошибка?
  • Как я могу решить эту ошибку?

Ответы [ 3 ]

6 голосов
/ 11 августа 2011

Символ \ имеет специальные функции в символьной и строковой константе, поэтому вам нужно экранировать его, чтобы записать его как символьный литерал: string.lastIndexOf('\\').

В действительности, чтобы быть переносимым, вы, вероятно, захотите использовать File.separatorChar вместо явной символьной константы. Таким образом, вы получите / в Unix вместо \.

3 голосов
/ 11 августа 2011
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 . . .

Отказ от ответственности

Это не ответ на ваш вопрос, это даже не ответ на вопрос , а простолучшее предложение, которое я могу дать вместо того, чтобы знать, каков реальный вопрос.;)

1 голос
/ 11 августа 2011

Вам нужно добавить еще один \.Вы избегаете 'синглом \, так что вы должны выглядеть;nameOfAudioFile.lastIndexOf ( '\\')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...