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

alexvingg

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

Mr.style

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.

Mr.style

Só coloca então como resolvido!

alexvingg

É… 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.

edumoreira

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:

edumoreira

Só um detalhe,

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

alexvingg

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