#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.