(Resolvido)Pegar a x ocorrência desta String

4 respostas
Michel_M

Boa tarde pessoal

Eu tenho uma String, e eu preciso pegar por exemplo a segunda ocorrência desta String.

Ex:

Assim eu quero pegar a segunda ocorrencia da palavra “eu” .

Desde já eu agradeço

4 Respostas

al.barbosa

Michel,

Acho que você pode usar o método indexOf(String str, int fromIndex) da classe String. Retorna a posição da substring a partir de uma posição. Você pesquisa pela posição da primeira ocorrência, e a partir dessa posição pesquisa pela posição da segunda ocorrência.

E

Isso é um exercício de escola, não? O método indexOf tem um segundo parâmetro (que você nunca se deu conta) que indica a partir de onde você quer procurar as coisas em uma string.

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(int,%20int)

Vou dar um exemplo. Digamos que você tenha a frase

//
String s = “EUCLIDES ENTENDEU QUE O EURÓPIO ESTÁ NA TABELA PERIÓDICA E É UMA TERRA RARA”;

Se você usar s.indexOf (“EU”), vai descobrir que a primeira localização dessa string está na posição 0.
Isso quer dizer que você, para achar a segunda localização dessa string, tem de procurar a partir da posição 0 + 2, onde 2 é o tamanho da string “EU”.
Então s.indexOf (“EU”, 2) vai retornar 15, que é a segunda localização dessa string.
Diga qual é a terceira localização dessa string, e escreva o programa que faz isso.

R

Michel M:
Boa tarde pessoal

Eu tenho uma String, e eu preciso pegar por exemplo a segunda ocorrência desta String.

Ex:

Assim eu quero pegar a segunda ocorrencia da palavra “eu” .

Desde já eu agradeço

String valor = "eu tenho uma String, e eu preciso pegar por exemplo a segunda ocorrência desta String. ";
    String[] split = valor.split(" eu ");
    System.out.print(split.length+(valor.startsWith("eu ")?0:-1));
    System.out.print(split[split.length-1]);

se ele comecar com eu ele vai ver o segundo caso
eu peguei o ultimo resultado ali não sei se voce viu
mais se quiser uma das separações em especifico
split[1] pegaria a segunda parte ,
caso queira pegar a primeira parte sem o eu
split[0] = (split[0].startsWith("eu ")?split[0].substring(3,split[0].length()):split[0]);

duvidas fico a disposição

Michel_M

Valeu galera, consegui entender direitinho!

Criado 11 de julho de 2012
Ultima resposta 12 de jul. de 2012
Respostas 4
Participantes 4