Как мне ввести escape-символы в выражениях eclipse (Java)?

#java #eclipse

#java #eclipse

Вопрос:

Я пытаюсь использовать escape-символы в окне выражений в Eclipse для Java. Если я введу:

 filename.startsWith("C:")
 

это оценивается true как . Но если я изменю его на любой из этих:

 filename.startsWith("C:\")
filename.startsWith("C:")
 

Я получаю «<ошибки во время оценки>».

На самом деле я пытаюсь ввести условную точку останова, чтобы соответствовать пути к файлу; она не отображается <errors during the evaluation> , но и не останавливается, поэтому моя теория заключается в том, что я что-то делаю неправильно с экранированным символом обратной косой черты в обоих местах. Что это такое?

Комментарии:

1. В Java в строке одна обратная косая черта должна быть записана как две обратные косые черты. Что такое filename ? В зависимости от того, как вы это получите, обратная косая черта может быть уже преобразована в обычные косые черты ( / ) .

2. Назовите это «c:localtemp «. Я могу ввести его как c:\local\temp\ или c:localtemp , я получаю ошибку в любом случае.

3. Mhh, теперь C превращается в c , но startsWith(...) чувствителен к регистру. Просто укажите точное значение filename , которое вы узнали путем отладки или добавления строки System.out.println(filename); , а не путем угадывания.

4. Я не думаю, что вы понимаете вопрос. Не имеет значения, что filename это такое, если это ненулевая строка. Окно выражения отказывается распознавать литерал, переданный в качестве параметра startsWith() , независимо от того, ввожу ли я escape-символы для обратной косой черты или нет. Я спрашиваю, как предполагается вводить этот литерал. Я знаю startsWith() , что чувствителен к регистру. Ошибка появляется, когда программа останавливается на точке останова, и я ввожу выражения для отображения отладчиком. Я ничего не предполагаю; как только я смогу разобраться с выражениями, я займусь отладкой программы.

Ответ №1:

Вы должны ввести его как filename.startsWith("C:\\") , который выглядит для меня как ошибка, поэтому убедитесь, что об этом сообщили в Eclipse JDT.