String - pegar parte do texto da string. RESOLVIDO

10 respostas
K

Bom dia pessoal!
imaginem que possuo uma String e gostaria de recuperar somente uma parte dessa string… por exemplo, precisaria pegar a parte do conteúdo da string que esteja entre dois sinais de ponto-e-vírgula, tal como:

"inicio_da_string;meio_da_string;fim_da_string"

Como eu poderia recuperar a parte “meio_da_string”? Há alguma função que eu possa passar um primeiro parâmetro(de início), e um segundo, a fim de que eu consiga recuperar o que está entre os parâmetros?

Obrigado pela atenção!
Kallás

10 Respostas

A

velho usa o split, ver o tamanho do seu vetor e faz uma logica que vc pega o conteudo que está no meio do vetor

M

verifica qual fica melhor para você split ou substring.

K

Oi alexvingg! Tem razão!
É uma alternativa sim. Acho que no “final das contas” terei que fazer dessa maneira mesmo. Apenas fiquei curioso sobre se já existe algum método para realizar essa operação…

Obrigado pela prontidão!
Kallás.

M

Só coloca então como resolvido!

A

É… agora essa alternativa é meio furada pois se vc tiver uma string assim “inicio;meio_1;meio_2;_fim” vc tem que fazer uma logica pra identificar quando for par e capturar as duas strings do meio.
flw

K

Ahhh sim, nesse caso, é verdade.
Mas, meu texto é simples… como mencionei anteriormente mesmo. Vou utilizar o “split” e construir a lógica.
Então, como lembrou o Mr.style, indiquei como resolvido.

Valeu pela ajuda pessoal!
Kallás.

E

Kallas,

Não precisa fazer lógica em cima de split…

Usa

indexOf(";"); lastIndexOf(";");

eles retornam inteiros com a posição da String passada…

depois é só usar substring(beginIndex, endIndex);

Esses métodos também já tratam o caso de vc ter mais de uma String no meio, como disse o alexvingg, já que eles retornam respectivamente a 1º e última ocorrência da String.

OBS. É preciso somar 1 no índice de início pois senão eles traz na String um ( ; ) no começo.

flws… :arrow:

E

Só um detalhe,

coloca [RESOLVIDO] no título do tópico, assim fica mais fácil pra quem está pesquisando saber que foi resolvido. =]

A

ah dessa ai eu não sabia ! hehe fiz o teste aqui funcionou …

public static void main(String[] args) { String pro = "Java;Ruby;PHP"; int um; int dois; um = pro.indexOf(";"); dois = pro.lastIndexOf(";"); System.out.println(pro.substring(um + 1, dois)); }

K

Ok moçada. Obrigado pela ajuda!
Consegui resolver aqui com indexof e lastindexof, como referiu o colega…

Valeu pela atenção!
Kallás.

Criado 18 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 10
Participantes 4