Ajuda com string

seguinte tenho a linha
 arquivo = jf.getSelectedFile().getAbsolutePath()   ; essa linha me retorna
C:\teste\imagem.gif

e eu presiso usar a string arquivo aqui 

 String filename = arquivo;                       C:\teste\imagem.gif     nao       funciona
        DataSource source = new FileDataSource(filename);

nao funciona devido a \ o certo teria que ser assim

    String filename = "C:\teste\imagem.gif";                  aqui funciona
        DataSource source = new FileDataSource(filename);

alguem ajuda ai a alterar \ por \ ????????

[quote=fabiodurgante][code]
seguinte tenho a linha
arquivo = jf.getSelectedFile().getAbsolutePath() ; essa linha me retorna
C:\teste\imagem.gif

e eu presiso usar a string arquivo aqui

String filename = arquivo; C:\teste\imagem.gif nao funciona
DataSource source = new FileDataSource(filename);

nao funciona devido a \ o certo teria que ser assim

String filename = "C:\teste\imagem.gif";                  aqui funciona
    DataSource source = new FileDataSource(filename);

alguem ajuda ai a alterar \ por \ ???

[/code][/quote]

Vc pode usar tanto \ como / exemplo C:/diretoritorio/etc

Vc tem q utilizar duas barras, pq o java utiliza a barra para caracteres especiais como pular linha
“\n” por isso da \
falow

Voce pode utilizar o metodo replaceAll da classe String:

filename = arquivo.replaceAll("\", "/");

Valeu

Se o seu comando ‘getSelectedFile().getAbsolutePath()’ já retorna uma String assim: ‘C:\algo\sei lá’ então não precisa usar replace nenhum. O replace só é necessário quando a String aparece no código fonte da classe, digitada pelo programador. Em outros casos, a JVM faz o tratamento interno de caracteres de escape, por exemplo. Se o seu comando, com um System,out.println, lhe retorna a seguinte String:

“Olá mundo”
(com aspas)

Teríamos o mesmo resultado de digitar no fonte:

String nome = "\"Olá mundo\"";

Mas nesse caso, nenhum replace é preciso. Conseguiu entender?


arquivo.replaceAll("/","\"));  assim funciona mas nao é bem isso q eu quero

arquivo.replaceAll("\","\")); tem q ser assim mas da erro 
unclosed string literal

usando replace nao da certo

ate aqui na pagina da erro nao ficou como STRING !!!!

Use assim:

arquivo.replaceAll("\", "\\");

O que acontece é que \ é um caractere especial. Com ela se faz sequencias como \n, \t, \r. Para usar uma única \ numa string, vc tem que usar \. Mas isso só vale para strings literais, ou seja, para aquelas criadas com aspas.

Para uma string obtida através de um método (como o getAbsolutePath()) a \ é uma letra qualquer. Até pq, os simbolos que ela representa (um tab no caso do \t, por exemplo) já estão traduzidos e inseridos dentro da string.

Agora, tenho a forte impressão de que não é esse o seu problema. Queria saber porque vc diz que não funciona, e porque você acha que é por causa da \ ?

Do jeito que você fez, deveria funcionar sem o comando replace.

Quem sabe esta lista lhe ajude.

+-------------------+------------------+  
| Character         |  Escape Sequence |  
+-------------------+------------------+  
| Backslash         |  \              |  
| Backspace         |  \b              |  
| Carriage return   |  \r              |  
| Double quote      |  \"              |  
| Form feed         |  \f              |  
| Horizontal tab    |  \t              |  
| New line          |  \n              |  
| Octal character   |  \DDD            |  
| Single quote      |                |  
| Unicode character |  \uHHHH          |  
+-------------------+------------------+