| Autor |
Mensagem |
|
|
Muito obrigado pela explicação!
Além de corrigir consegui entender o porque do erro, muito obrigado!
|
 |
|
|
Pessoal... tenho uma classe que deve fazer o seguinte:
Tem um arraylist que recebe uma frase, mostra se alguma palavra da frase tem o "radical" _N junto dela, se tiver mostra a posição que ela está, mas depois de mostrar a posição dela não consigo mostrar o seu conteúdo.
package calculos;
import java.util.ArrayList;
public class Corpus {
Corpus() {
//Armazenar todos os _N em uma lista
ArrayList<Object> al = new ArrayList<Object>();
al.add("teste_N um_O array_P list_N para_I extrair_O valores_U");
Iterator it = al.iterator();
int index;
String str;
for (int i = 0; i < al.size(); i++) {
str = (String)it.next();
index = str.indexOf("_N");
if (al.contains(str)){
System.out.print("Sim, existe pelo menos um _N \n\n");
}
System.out.print("Se existe um _N, em que posição ele está? \n\n");
if (index > -1) {
System.out.println("Está na posição: " + index);
i = al.size();
String tst = (String) al.get(index);
System.out.println("Está na posição: " + index);
}
}
}
}
Saída:
Sim, existe pelo menos um _N
Se existe um _N, em que posição ele está?
Está na posição: 5
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 1
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at calculos.Corpus.<init>(Corpus.java:39)
at calculos.CPrincipal.main(CPrincipal.java:
Obrigado,
Abraços
|
 |
|
|
Pessoal, é a primeira vez que estou lidando com regex, li um pouco sobre a documentação.. e um pouco sobre o que tem no fórum, então não sei se é possível o que estou tentando fazer.
O que eu gostaria de saber é o seguinte.. tenho uma String do seguinte exemplo:
String: " eu_A estou_B aprendendo_C regex_D mas_E encontrei_F alguns_G desafios_H"
Onde eu preciso pegar uma letra, por exemplo: "_C".
só que além do C, eu preciso do que vem junto com ele na palavra, no caso o "aprendendo" isolado e também levar em consideração o que vem antes e depois do "_C", no caso o "_B" e o "_D".
----
O que já consegui:
já tive saída do arquivo assim: java.util.regex.Matcher[pattern=_N region=0,262 lastmatch=_N]
onde procurei por _N , mas não consegui pegar a palavra que o acompanhava, no caso era anos_N .. se tivesse uma maneira quem sabe de pegar o region e pegar posição anterior poderia ser uma solução.. mas não consegui.
também não posso pedir para pegar anos_N inteiro, pois a palavra que eu quero procurar as vezes leva outro radical, exemplo: obstrução_N
alguém tem alguma idéia? se tiver outro caminho aceito, pois não tenho conhecimento suficiente para saber se com regex venha a funcionar.
Obrigado e um abraço a todos.
|
 |
|
|
|
|