Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как заменить заменить символ \ на \\ , с помощью replaceall ? (http://forum.oszone.net/showthread.php?t=205804)

Большой Кол 28-04-2011 15:17 1667163

Как заменить заменить символ \ на \\ , с помощью replaceall ?
 
Добрый день
Собственно вопрос - пишу


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 1667179

Блин отныне моя жизнь посвещана не кодированию, а поискам того кто изобрел джаву
Вот как надо replaceAll("\\\\", "\\\\\\\\")

Delirium 29-04-2011 00:59 1667357

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

El Scorpio 29-04-2011 05:37 1667385

Цитата:

Цитата Delirium
Таким образом слеш меняется во всех языках. Связано это с тем, что знак "\" используется при написании служебных символом, таких как "\n", "\b" и т.д. Поэтому при замене надо писать вместо \ - \\. »

Если нужно вбить в код программы строку, содержащую кавычки, эти кавычки также пишутся через слэш \' - одинарная кавычка, \" - двойная кавычка


Время: 17:51.

Время: 17:51.
© OSzone.net 2001-