Войти

Показать полную графическую версию : Как заменить заменить символ \ на \\ , с помощью replaceall ?


Большой Кол
28-04-2011, 15:17
Добрый день
Собственно вопрос - пишу


public class Main {
public static void main(String[] args) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.showOpenDialog(null);
String s = fileChooser.getSelectedFile().getPath();
String s1 = s.replaceAll("\\", "\\" + "\\");
System.out.print (s1);
/*File file = new File (s1);

String[] str = file.list();
int l = str.length;
for (int a = 0 ; a<l;a++) System.out.print(str[a] + "\n");*/
}


И мне выдает любую ересь кроме строки где путь быдет вида D:\\Мои проекты\\Java

Как вообще можно \ заменить на \\ ?

Большой Кол
28-04-2011, 15:43
Блин отныне моя жизнь посвещана не кодированию, а поискам того кто изобрел джаву
Вот как надо replaceAll("\\\\", "\\\\\\\\")

Delirium
29-04-2011, 00:59
Таким образом слеш меняется во всех языках. Связано это с тем, что знак "\" используется при написании служебных символом, таких как "\n", "\b" и т.д. Поэтому при замене надо писать вместо \ - \\.
Кстати, в файлах реестра для Windows тоже двойные слеши в имени пути используются.

El Scorpio
29-04-2011, 05:37
Таким образом слеш меняется во всех языках. Связано это с тем, что знак "\" используется при написании служебных символом, таких как "\n", "\b" и т.д. Поэтому при замене надо писать вместо \ - \\. »
Если нужно вбить в код программы строку, содержащую кавычки, эти кавычки также пишутся через слэш \' - одинарная кавычка, \" - двойная кавычка




© OSzone.net 2001-2012