Bom dia!
Como faço para procurar por exemplo, uma "/" em uma string com com duas ocorrências?
Fiz assim mas, não esta encontrando.
Pattern ptnrPosicaoInicial = Pattern.compile("/{2}");
Pattern ptnrPosicaoFinal = Pattern.compile("\n\r");
Matcher mtchPosicaoInicial = ptnrPosicaoInicial.matcher(sbBuffer1);
Matcher mtchPosicaoFinal = ptnrPosicaoFinal.matcher(sbBuffer1);
if (mtchPosicaoInicial.find()) {
iPosicaoInicial = mtchPosicaoInicial.start() - 2;
System.out.printf("Encontrado: \"%s\" de %d à %d.%n", mtchPosicaoInicial.group(), mtchPosicaoInicial.start(), mtchPosicaoInicial.end());
if (mtchPosicaoFinal.find()) {
iPosicaoFinal = mtchPosicaoFinal.start() - 1;
System.out.printf("Encontrado: \"%s\" de %d à %d.%n", mtchPosicaoFinal.group(), mtchPosicaoFinal.start(), mtchPosicaoFinal.end());
}
}
A string é esse:
03/01/05 07:18AM 1 E1148 T10103 <I>9000 0'10 00:00'25 <LF><CR>
Faz o teste, não tenho certeza.
Pattern p = Pattern.compile("/");
Matcher m = p.matcher(sbBuffer1);
while(m.find) {
System.out.println("Pos Inicial: " + m.start() + "String: " + m.group());
}
jopss
Maio 2, 2008, 8:09am
#4
Se fosse uma String normal, vc faz:
String[] s = string.split("/")
que corta a string com a ocorrencia passada, retornando um array com os intervalos… no teu caso irá retornar 3 strings, sem a “/”
ou pega o indice e faz substring:
int idx = string.indexOf("/");
String s = string.substring(0,idx);
neste caso te retorna a primeira barra. Teria que refazer no resultado para pegar a segunda.
No teu caso nao sei nao…
jopss
Hum… agora dei uma olhada melhor. Voce está querendo pegar a string entre as barras, e não só a posição da barra utilizando regex.
Voce pode utilizar o que é o jopss disse, ou dar uma olhada na classe Scanner que tem vários métodos para isso.
abraço
Gustavo,
Estou querendo relamente pegar as posições correspondentes à "/".
Então acho que qualquer uma das formas, tanto a minha como a do jopss deve funcionar, já fez o teste?
Blz!
Isso funciona, porém preciso pegar todas as ocorrências de “/”
Tentei
Pattern ptnrPosicaoInicial = Pattern.compile("/{2}");
Mas não está funcionando.
Irei te mandar um link
Dê uma olhada no final deste documento por favor.
Usa um while e pega um por um
uh, uh!
Isso não irei fazer mesmo, antes usava IO passaei a usar o NIo que disseram ser melhor, acatei!
Dizeram para usar Expressôes Regulares para encontrar o que desejar em uma string, acatei tb!
Sei que as mudanças são ótimas, sei tb. que resolve bem os problemas por serem “Completas”,
partindo disso sei que pode ser feito usando esssa expressão {n}, só preciso saber como.
Continuarei vasculhando até encontrar, pq. sei que uma vez construindo esse minha classe, nunca mais precisarei fazer isso denovo.
Valeu!