indexOf ("caracter contra barra")?

13 respostas
H

Eu to precisando saber em quais indices estao presentes as contra barras ("") da minha String, so q qnd uso indexOf("") ta dando pau, como faco isso? Tentei indexOf("\"), n pegou tb. Acho posso verificar pelo inteiro q equivale a contra barra e usa o indexOf(int ch) ne isso? Qual o inteiro q equivale a contra barra? Ajuda ai…

13 Respostas

P

a dupla barra ivnertida é o jeito correto mesmo. a primeira faz escpaing da segunda.

tem certeza que não funcionou?

H

foi mals ae, pegou sim, o problema foi outro, dps eu posto se n conseguir resolver.

eu poderia usar tb o int q equivale a “” ne isso? pq tem o metodo indexOf(int), mas qual o int equivalente? alias aonde arrumo a lista de equilavencia entre os caracteres e os inteiros, as vezes eu preciso e nem tenho :confused:

H

aeee, consegui fazer!!!

na verdade eu queria fazer o seguinte: qnd eu digitasse no texfield “c:\arquivos\programas”, ele convertesse p/ “c:/arquivos/programas”, dps de mta luta eu consegui com o seginte codigo:

private String converterDir(String dir) {

int i = dir.indexOf(’\’);

while(i != -1) {

dir = dir.replace(’\’,’/);

i=-1;

}

return dir;

}

quem tiver msm problema, ja pode “poivar” do codigo, flwsss…

Ah! Ia me eskecendo, eu axei 1 descricao da api da classe String “meia falha” ou entao eu q entendi errado, vejam la e confiram: eh no metodo replaceAll(string a, string b), la ele fala que este metodo ja substitui a string “a” pela “b”, e joga no objeto, na verdade ele n edita o objeto, e sim, retorna convertido.

Ou seja, se fizesse o q tem la, entao:

teste = “oi”;
teste.replaceAll(“i”,“a”);

iria alterar a var teste, mas isso n ocorre, isto so ocorre se:

teste = “oi”;
teste=teste.replaceAll(“i”,“a”);

a descricao la devia ser q retorna alterado, mas tem falando q substitui. bem eu pensei assim, mas o q vcs acham?

T

isso se deve ao fato de Strings serem imutaveis em JAVA… qualquer metodo que vai alterar a string, na verdade devolve uma nova string com o valor alterado

H

Blz, mas pela descricao do metodo na API, dar se a entender q o metodo muda diretamente o objeto e nao q ele retorna (foco da discussao), veja ai se vc n chega a esta conclusao tb:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

metodo replaceAll()
Replaces each substring of this string that matches the given regular expression with the given replacement.

Obs: olha a diferenca da descricao deste p o metodo replace(char, char), eu achei meio falho, mas claro, cd um tem sua interpretacao.

A

talvez o pessoal da sun…colocou no doc já pressupondo que vamos lembrar que Strings são imutáveis entende?? :wink:
mas as vezes realmente…é melhor ser um poquinho mais generoso na explicação do método…não custa nada…:smiley:

H

Mas na verdade elas nao sao imutaveis, a gente pode pegar uma string e mudar (usando atribuicao), elas sao imutaveis a partir de seus metodos, confere?

A

a partir do meu conhecimento de java…o que acontece quando concatenamos duas strings diferentes e atribuimos ao valor da primeira…na verdade estamos criando uma terceira string, e as outras 2 permanecem imutáveis…ou seja…o que acontece é criar uma terceira string com o valor das outras 2 concatenadas…
:shock: será que meu conhecimento está correto?

H

Ok, parece q eh isso msm, mas qnd fazemos:

String palavra=“casa”;

palavra=“carro”;

isso q vc disse acima tb ocorre?

A

hlds:
Ok, parece q eh isso msm, mas qnd fazemos:

String palavra=“casa”;

palavra=“carro”;

isso q vc disse acima tb ocorre?


Acredito que é isso mesmo! :slight_smile:

H

pra esclarecer, no caso, o q ocorre acima eh o seguinte:

1: “palavra” recebe referencia p area de memoria “X” q contem “casa”

2: dps “palavra” recebe referencia p area de memoria “Y” q contem “carro”

3: o garbage collector limpa area de memoria “X” por n possuir nenhuma referencia

confere?

A

hlds:
pra esclarecer, no caso, o q ocorre acima eh o seguinte:

1: “palavra” recebe referencia p area de memoria “X” q contem “casa”

2: dps “palavra” recebe referencia p area de memoria “Y” q contem “carro”

3: o garbage collector limpa area de memoria “X” por n possuir nenhuma referencia

confere?

Não é garantia que o GC vai recolher o objeto sem referência…mas sim…ele fica sem referência e é passivel de ser recolhido…
é isso! :slight_smile:

H

ok

Criado 9 de julho de 2006
Ultima resposta 12 de jul. de 2006
Respostas 13
Participantes 4