O que acontece?
O código abaixo funciona normalmente:
[code]// no arquivo esta \teste1\teste2\teste3\ que vai ser representado pela String
String linha = “\teste1\teste2\teste3”;
linha = linha.replace( “”, “/” );
System.out.println( linha );[/code]
Você não precisa verificar se existe o valor que vai ser alterado, pq caso o método replace falhe em achar o que foi pedido, ele simplesmente não vai alterar nada.
Vc não precisa atribuir linha a linha2, use a mesma variável.
olá Marina, de uma pesquisada em caracteres de escape. Quando em uma string vc coloca uma barra \ indica que vc vai usar um caratere de escape, os mais comuns são
Escape Sequence Description
\t Insert a tab in the text at this point.
\b Insert a backspace in the text at this point.
\n Insert a newline in the text at this point.
\r Insert a carriage return in the text at this point.
\f Insert a formfeed in the text at this point.
’ Insert a single quote character in the text at this point.
" Insert a double quote character in the text at this point.
\ Insert a backslash character in the text at this point.
Davidbuzatto o meu código funciona normalmente se a minha string tiver o “\”, porém como se trata de um arquivo de texto contendo apenas uma barra invertida “”, então dâ erro de compilação como disse o tinorberto, e é exatamente isso que eu quero solucionar: uma forma de identificar apenas uma barra invertida \ contida na string que contem o texto do meu arquivo.
Deu pra entender? Eu não consegui encontrar nada pela net.
A String linha representa uma linha de um arquivo de texto, que consiste de um código do VisuAlg. Eu quero traduzir isso para “x<-2/1”, porém o Java não consegue identificar o símbolo “”, já que este não está no formato “\”.
Então, no Java e em diversas outras linguagens, a barra invertida (ou contra-barra) é usada na composição de caracteres de escape.
Por exemplo, um caractere de nova linha é o ‘\n’ (barra invertida + n). Uma tabulação é ‘\t’ (barra invertida + t). Você consegue perceber que a barra invertida é um caractere especial? Ela indica que o próximo caractere tem um significado diferente do literal (veja a lista que o tinoberto postou).
Sendo assim, quando vc precisa do caractere de barra invertida, vc precisa dar o escape nele, da mesma forma que faz com o ‘n’ para nova linha e o ‘t’ para tabulação, ficando então ‘\’.
Uma String que vai conter uma barra invertida, deve ter o ‘\’.
Se vc colocar só uma ‘’ e na frente dela não haver nenhum caractere permitido (b, n, t, , etc.) o compilador vai reclamar.
Resumindo: ‘\’ em uma String é igual a ‘’.
Entendeu? Veja o exemplo dos colegas e se ainda tiver dúvida, poste novamente ok?