Duvidas - Strings

4 respostas
S

Ola galera!!!

Tow eu aqui com mais uma duvida…poxa…
Bem, eu estou usando a funcao replaceAll para substituir parte da minha string por otro texto. Assim:

str.replaceAll("%20", " ");

pois estou pegando uma url e preciso substituir os %20 por espacos, so q naum ta funcionando… :frowning: naum ta mudando nada na minha string…alguem tem ideia do q possa ser?

Alias, se alguem souber alguma funcao diferente que converta automaticamente esses codigos para o correto (q entenda q %20, por exemplo, signifca espaco em branco), seria muito melhor…

Muito obrigada!!!

4 Respostas

rodrigo_gomes

Olá,

esse método retorna uma String com o resultado da operação
Então vc deve fazer

str = str.replaceAll("%20", " ");

[]´s

jgbt

so completando,
quando vc faz:

str.replaceAll("%20", " ");

vc ta criando uma nova String na memoria(lembre-se que Strings são imutaveis) com o novo valor, mas não esta apontando essa posição para nenhuma variavel.
por isso:

str = str.replaceAll("%20", " ");

deve funcionar, pois vc ta criando a nova String e apontando ela para a variavel que ja existe.

[]'s

_fs

Ou faz assim:

String encoded = "teste%20decode";
System.out.println( java.net.URLDecoder.decode( encoded ) );
S

Ow valeu! tendi! acho q agora deu certo, essa parte…mas continua dando um erro…mas agora acho q tem haver com otra coisa…

Vou explicar pra vcs tudo q eu tow fazendo… preciso pegar o endereco de uma url e setar esse endereco no classpath do sistema. O erro que ta dando agora ACHO q ocorre exatamente na hora de setar o classpath…vou colocar o codigo que seta isso:

private void setClasspath()

{

URL url = this.getClass().getResource(“reportFaixaEtaria.dat”);

String s = url.getFile();

int index = s.lastIndexOf(“file:);

if (index != -1)

{

s = s.substring(5);

index = s.lastIndexOf("/RMclientepfs.jar");

if (index != -1)

{

String p = System.getProperty(“path.separator”);

s = s.substring(0, index) + “/”;

s = s.replaceAll("%20", " “);

s = s.replaceAll(”/", System.getProperty(“file.separator”));

System.setProperty(“java.class.path”, //

s + “RMcommons-logging-api.jar” + p + //

s + “RMjhall.jar” + p + //

s + “RMcommons-logging.jar” + p + //

s + “RMcommons-beanutils.jar” + p + //

s + “RMiReport.jar” + p + //

s + “RMjh.jar” + p + //

s + “RMcommons-collections.jar” + p + //

s + “RMjsearch.jar” + p + //

s + “RMcommons-digester.jar” + p + //

s + “RMjasperreports-0.6.6.jar” + p + //

s + “RMlooks-1.3b1.jar”);

}

}

}

Isso funciona perfeitamente no Linux… mas no Windows (q tem aqueles %20, naum funciona)…ah…detalhe…isso tudo tow fazendo pra poder rodar o relatorio do jasper no java web start… :frowning:

e o erro que ta dando:

java.io.IOException: CreateProcess: javac -classpath C:\Arquivos de programas\Java\j2re1.4.2_06\javaws\javaws-l10n.jar C:\Documents and Settings\saito\reportFaixaEtaria.java error=2

at java.lang.Win32Process.create(Native Method)

at java.lang.Win32Process.(Unknown Source)

at java.lang.Runtime.execInternal(Native Method)

at java.lang.Runtime.exec(Unknown Source)

Nossa…cansei…ufa…

Se alguem puder me dar um help ou otra sugestao, eu fico muito gradecida!!! :slight_smile:

Ate! Valeu!

Criado 5 de maio de 2005
Ultima resposta 5 de mai. de 2005
Respostas 4
Participantes 4