Boa tarde, eu estou com um pequeno problema em que eu preciso substituir todos os sinais de + de uma String por %2B
Mas ele dá o erro Dangling meta character ‘+’ near index 0
Poderiam me dar uma sugestão de como contornar esse problema?
url=url.replaceAll("+", "%2B");
Olá amigo,
Para que a função entenda um literal, tente escapar, por exemplo:
String x = s.replaceAll("\\+", "%2B");
[]'s
Isso funciona se eu faço isso:
String teste="coisa+testes+tes";
teste=teste.replaceAll("\\+", "%2B")
;
Mas quando eu passo como parametro:
public static void teste(String teste){
teste=teste.replaceAll("\\+", "%2B");
}
Não funciona ele simplesmente não substitui
Qual o conteúdo do atributo teste quando você o passa como argumento para o método teste()?
Isso funciona:
String teste = "coisa+testes+tes";
teste = teste.replaceAll("\\+", "%2B");
Portanto, certifique-se de que o conteúdo do atributo esteja correto!
[]'s
[quote=criscky]Isso funciona se eu faço isso:
String teste="coisa+testes+tes";
teste=teste.replaceAll("\\+", "%2B")
;
Mas quando eu passo como parametro:
public static void teste(String teste){
teste=teste.replaceAll("\\+", "%2B");
}
Não funciona ele simplesmente não substitui[/quote]
A passagem de parâmetros, no Java, é por valor. Você está alterando numa cópia local.
Coloque um retorno no método.
public static String teste(String teste){
return teste.replaceAll("\\+", "%2B");
}
Aliás, se você está tentando realizar o encoding da url, tem uma classe pronta para isso:
public static String teste(String url) {
try {
return URLEncoder.encode(url , "UTF-8")
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("Uma exceção que nunca ocorrerá",e);
}
}
[quote=AbelBueno]Aliás, se você está tentando realizar o encoding da url, tem uma classe pronta para isso:
[code]
public static String teste(String url) {
try {
return URLEncoder.encode(url , “UTF-8”)
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException(“Uma exceção que nunca ocorrerá”,e);
}
}
[/code][/quote]
Muito obrigado isso resolveu tudo