Problema com replaceAll

10 respostas
spycall

Estou com o seguinte problema:

Tenho que fazer um replace de “” para “\”, mas estou conseguindo, já tentei

caminho = caminho.replaceAll("\","\");
caminho = caminho.replaceAll("\","\\");
caminho = caminho.replaceAll("[\]","[\][\]");

mas nenhum deles rolou.

10 Respostas

_fs

Se é para caminho de diretório basta substituir “\” por “/”

spycall

è caminho de diretório, mas esse caminho é para buscar uma imagem em outro servidor, o caminho é + ou - assim:

\server1\Imagens\Projetos\Arquivos\imagem.jpg

se eu passo o caminho assim ele não encontra a imagem, tenho que passar assim:

\\server1\Imagens\Projetos\Arquivos\imagem.jpg

então não posso substituir p “\” por “/” pois tem o servidor na frente, ou posso ?

kinow

De onde você recebe este char \ ???

kinow

Desculpas, não tinha visto que já havia postado outra mensagem, já tentou algo como \\server1/blahblah/blahblah

spycall

Esse caminho vem do banco de dados.

spycall

Concegui, deve ficar assim:

caminho = caminho.replaceAll("\\","\\\\");
kinow

GHahahahahaha, ficou style

T
caminho = caminho.replaceAll("\\","\\\\");

Isto merece um comentário igual ao que se encontra nos fontes do kernel do Unix V6:

/* You are not expected to understand this */

De fato, é por isso que o C# tem uma forma alternativa de exprimir strings - ponha um “@” antes da string, e os caracteres “” não precisam ser duplicados.

kinow

Huuuuuummmmmmmm, veio perguntar mas acabou ensinando hahaha, valeu brother

_fs

Eu entendi hehe

“” -> não faz nada, é caractere de escape
“\” -> vira “”, mas ai a regexp engine entende que é apenas um caractere de escape
“\\” -> vira “\” e então entende que é para buscar uma “” XD

Criado 16 de agosto de 2005
Ultima resposta 16 de ago. de 2005
Respostas 10
Participantes 4