Problemas ao substituir '\' por " \\ "

Bom dia amigos,

Estou começando com java, migrando do vb6, e feliz pois estou me dando bem, apesar das diferenças.
me surgiu uma duvida com o método replace, eu preciso substituir em uma string o caractere \ pelo \, ex:

 String caminho = c:\pasta\texto.txt
 String newcaminho = caminho.replace('


A intenção do código é que , eu vou fazer cópias com o FileChannel, e pelo que aprendi no java( me corrijam se estiver errado),  pra o java entender \ na string tem que usar duas \ ou seja : \\, então, essa String caminho ela vem de um resultado de um JFileChooser, o usuário escolhe um arquivo, e o programa vai fazer a cópia desse arquivo. O resto do programa já está funcionando perfeitamente, a minha dificuldade é com essa parte de substituir essa barra. 


Abraços, 

 
," \");

A intenção do código é que , eu vou fazer cópias com o FileChannel, e pelo que aprendi no java( me corrijam se estiver errado), pra o java entender \ na string tem que usar duas \ ou seja : \, então, essa String caminho ela vem de um resultado de um JFileChooser, o usuário escolhe um arquivo, e o programa vai fazer a cópia desse arquivo. O resto do programa já está funcionando perfeitamente, a minha dificuldade é com essa parte de substituir essa barra.

Abraços,

Não, você não precisa fazer isso.

A duplicação de “” deve ser feita apenas no código fonte, não em uma String que já contem os dados.

É que no código-fonte uma “” sozinha em uma constante String tem o propósito de mudar o significado do próximo (s) caracter (es).
Mas dentro de uma String pronta, que você leu (por exemplo, de um JFileChooser) o “” é um caracter como os outros.

Realmente é necessário isso?

Se você usar new File(“c:/temp”) o Java irá automaticamente trocar para o infame .

Pow entanglement,

Quando vc está esrevendo no código o caminho da aplicação, é verdade que vc precisa colocar as “\” e o java irá interpretar com apenas uma “”. Vc pode testar no println().

Mas quando a string vem de uma request do JFileChooser , vc não precisa se preocupar em fazer o replace que o java faz automaticamente o parse. Relaxa veio…

Testa esse código:

	JFileChooser escolherPasta = new JFileChooser();
	String str = "";
	int valor = escolherPasta.showOpenDialog(new JFrame());

	if (valor == JFileChooser.APPROVE_OPTION) {
	   str = escolherPasta.getSelectedFile().getPath();
	}

	System.out.println(str);

[]'s

:stuck_out_tongue:

Vlw amigos, obrigado pela ajuda!

Na verdade eu não cheguei a testar direto,( sem tentar fazer o replace), pensei que iria influenciar, mas vlw pela ajuda.