Как мы все знаем, мы можем использоватьКак избежать «» символы в Java
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
в C#, чтобы не удваивать «\».
Но как это сделать в java?
Как мы все знаем, мы можем использоватьКак избежать «» символы в Java
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
в C#, чтобы не удваивать «\».
Но как это сделать в java?
К сожалению, на Java нет полноэкранного оператора escape. Вам нужно написать код, как:
String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile";
Там не весь оператор строки побега, но, если это для доступа к файлам, вы можете использовать косую черту:
String aa="E:/dev_workspace1/AccessCore/WebRoot/DataFile";
Windows allows как вперед, так и назад косые как разделитель путей. Это не сработает, если вы пройдете путь к внешней программе, которая с ним справится и не удастся, но это довольно редко.
Может быть не прямой ответ на ваш вопрос, но я считаю, что следует отметить:
Итак, есть, но, как заметил Винько, вам действительно не нужно беспокоиться об этом свойстве; косые черты работают очень хорошо. –
Действительно независимый от системы способ сделать это:
String aa = "E:/dev_workspace1/AccessCore/WebRoot/DataFile";
String output = aa.replace('/', File.separatorChar);
Это даст вам "E: \ dev_workspace1 \ AccessCore \ WebRoot \ DataFile" на Windows, и «E:/dev_workspace1/AccessCore/WebRoot/DataFile " примерно везде.
Почему замена? «/» Всегда работает на Java и автоматически преобразуется в системный разделитель-char. – Mnementh
Потому что тогда действительно, действительно, действительно безопасно использовать эту строку. Вы даже можете передать его в качестве параметра, чтобы, скажем, неясную программу командной строки DOS в окнах или подавать ее на действительно древние вызовы WinAPI или что-то, что не может обрабатывать косые черты в качестве разделителя. –
Оберните замену, если (File.seperatorChar! = '/') В качестве оптимизации для платформ unix. – KitsuneYMG
Если вы пишете путь, вы должны использовать '/' в качестве разделителя путей в Java. «/» Является официальным разделителем путей в Java и будет преобразован в соответствующий разделитель для платформы (\ under windows,/under unix). Остальная строка не изменяется, если она передается системе, поэтому «\» также работает под окнами. Но правильным способом представления этого пути является «E:/dev_workspace1/AccessCore/WebRoot/DataFile».
Если вы хотите представить '\' в Java-String, вам нужно сбежать от него с помощью другого: «Эта строка содержит a».
Действительно ли это на самом деле Ява, которая умна? Я думал, что это было следствием того, что Windows разрешает/как разделитель файлов, а также \. –
Идея - я всегда думал, что это Java, но возможно, это может быть вызов Windows API. Скорректировано на всякий случай. – paxdiablo
Хе-хе, мне нравится, как люди щедро работают над тем, чтобы поднять моего представителя! Спасибо Pax за улучшение ответа! :-) –