Я попытался инициализировать строковую переменную до пути к одному из файлов. Он сообщает, что escape-последовательность недействительна. Любое решение?Как избежать escape-последовательности в строковой переменной
String s="F:\abc\xyz.txt";
Я попытался инициализировать строковую переменную до пути к одному из файлов. Он сообщает, что escape-последовательность недействительна. Любое решение?Как избежать escape-последовательности в строковой переменной
String s="F:\abc\xyz.txt";
Преобразование @Hank D и @ комментарии осада на ответ:
В Java и C# (это трудно сказать, какой язык вы используете здесь, но это, вероятно, один из этих двух), то символ обратной косой черты \
используется для запуска управляющих последовательностей, которые вы можете использовать для включения специальных символов в строку, которые вы обычно не можете вводить на клавиатуре, иначе это могло бы вызвать проблемы. Например, вы можете поместить строку в строку, написав \n
:
String multiline = "This String\nSpans Multiple\nLines!";
Вы можете включать в себя символы Unicode с \U
последовательности:
String heart = "I \U2764 Escape Sequences!";
И вы можете включить вложенные кавычки с \"
последовательности:
String quotation = "Quoth the raven, \"Nevermore.\"";
в вашем случае, вы пытаетесь использовать \
характер как разделитель путей, но Java/C# интерпретирует то, что вы делаете, пытаясь построить недопустимые escape-последовательности. То есть строка
F:\abc\xyz.txt
становится истолковано как
F:(\a)bc(\x)yz.txt
Чтобы исправить это, вы можете использовать тот факт, что последовательность выхода \\
обозначает обратную косую черту и написать строку так:
Удовлетворительный факт: причина, по которой обратная косая черта была выбрана в качестве разделителя путей в Java/C#, заключается в том, что она была выбрана таким образом на C, потому что этот символ так редко использовался ... d затем появился DOS/Windows и сломал все. :-)
Кроме того, в C#, вы можете написать
String s = @"F:\abc\xyz.txt";
Символ @ префикс отключает управляющие последовательности в строке, что делает вещи намного легче читать.
Любой конкретный язык? –
Символ «\» имеет особое значение для «экранирования» или изменения значения следующего символа («\ t» означает, например, символ табуляции). Поскольку у него есть задача создания escape-последовательностей, если вам действительно нужен символ \ в вашей строке, вам нужно использовать escape-последовательность «\\», которая будет переведена на символ \. –
Спасибо большое .. Это работает как шарм :) – Kyrie