Erro usando replace

3 respostas
C

Boa Noite Pessoal

Estou com o seguinte problema, tenho um diretorio armazenado em uma variavel ex.:

String dir = “d:\files\teste.txt”

Preciso trocar a “” por “\” mas não consigo apresenta este erro abaixo:

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 3 in the jsp file: /TMP96x02kxxiw.jsp

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  "  ’  \ )

1: <%@ page contentType=text/html; charset=iso-8859-1 language=java import=java.sql.* errorPage="" %>

2: <%

3: String dir = D:\Files\Teste.txt;

4: String dir_trat = dir.replace(’’,\);

5: out.println(dir_trat);

6: %>
Stacktrace:

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)

org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)

org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Como faço para substituir a “” simples por “\” dupla, para outros simbolos funciona, letras, numeros, mas quando uso o sinal de barra, fica estranho existe alguma forma.

Meu codigo

<%@ page contentType=text/html; charset=iso-8859-1 language=java import=java.sql.* errorPage="" %>

<%

String dir = D:\Files\Teste.txt;

String dir_trat = dir.replace(’’,\);

out.println(dir_trat);

%>

Obrigado

Cristian

3 Respostas

antoniopopete

Não existe o char ‘\’. Voce pode tentar usando o replace que passa 2 strings como argumento,na verdade ele passa CharSequence que é uma interface que String implementa.
Então tente replace("\","\");

Voce usa \ antes para avisar que \ que voce quer usar é o simbolo e não o caracter de escape.
Tente ae

Insonia

Amigo,
eu acho que o teu codigo nao funciona pois vc está setando, hardcoded, o valor da tua string utilizando barra simples “” ao inves de barra dupla “\”

Teste substituir isso:

String dir = "D:\Files\Teste.txt";

por isso:

String dir = "D:\Files\Teste.txt";
L

o meu caso estava com o mesmo erro, mas depois que corrigi o meu caminho apareceu outro erro, será que alguem consegue me ajudar nesse caso?

Segue abaixo o erro.

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 20 in the jsp file: /leandro/RELGeraArq.jsp
Generated servlet error:
String literal is not properly closed by a double-quote

Criado 9 de julho de 2007
Ultima resposta 14 de mai. de 2008
Respostas 3
Participantes 4