Está dando pra ver porque está faltando muita informação pra podermos tentar lhe explicar porque “talvez” não está funcionando como você quer.
1 - O console imprime toda a execução?
2 - Você tem 3 fors aninhados e não apenas 2
3 - Em alguns pontos (como na exceção por exemplo, você muda as variáveis e objetos que fazem parte do filtro do seu laço como BaseWord e o j.
Pode estar acontecendo um monte de coisa que sem saber o que tem em VerbList, TextParts e BaseWord fica BEM difícil identificar onde exatamente está seu erro. É bem provável que o Loop inteiro até seja maior do que está aí e esteja sendo executado, só que ele não tem mais nada pra imprimir.
Se possível colocar o código inteiro seria de grande ajuda pra podermos te ajudar
Matrirxp
Eu consegui resolver.
Aparentemente o erro estava na hora de resetar a variável “BaseWord”
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packagedino.ai;importjava.io.File;importjava.util.ArrayList;importjava.util.List;importjava.util.logging.Level;importjava.util.logging.Logger;/** * * @author Matheus Markies */publicclassVerbDetectorextendsThread{StringText;String[]TextParts;List<String>SimilarVerbs=newArrayList<String>();List<String>TextVerbs=newArrayList<String>();List<Integer>VerbsPositions=newArrayList<Integer>();intTempPosition;booleanAnalyze;intTempPoints;intPoints;intb;StringWord;StringBaseWord;intProof;publicvoidrun(){while(Analyze){Verbsvl=newVerbs();TextParts=Text.split(" ");for(intg=0;g<vl.VerbsList.length;g++){BaseWord="";if(vl.VerbsList[g].length()>2){for(inti=0;i<vl.VerbsList[g].length();i++){if(i<(vl.VerbsList[g].length()-2)){BaseWord=BaseWord+vl.VerbsList[g].charAt(i);}}}else{BaseWord=vl.VerbsList[g];}for(inth=0;h<TextParts.length;h++){//if(TextParts[h].length()>vl.VerbsList[g].length()){for(intj=0;j<BaseWord.length();j++){try{if(BaseWord.charAt(j)==TextParts[h].charAt(j)){//System.out.println("BaseWord "+BaseWord);//System.out.println("TextParts "+TextParts[h]);//System.out.println("Tamanho TextParts: " + TextParts.length);//System.out.println("Tamanho VerbsList: "+vl.VerbsList.length);//System.out.println("h "+h);TempPoints+=1;}else{}}catch(Exceptione){TempPoints=0;j++;}}//}else{// for(int j =0;j<TextParts[h].length();j++){// try{// if(TextParts[h].charAt(j) == vl.VerbsList[g].charAt(j)){// TempPoints += 1; // }// }catch(Exception e){// TempPoints = 0;// j++;//}//}//}//Ciclo Text Partsif(TempPoints>Points){Word=TextParts[h];TempPosition=h;Points=TempPoints;TempPoints=0;//BaseWord = "";System.out.println("Points: "+Points);}else{TempPoints=0;//BaseWord = "";}//System.out.println("h "+h);}//Ciclo de Verbal Listif(vl.VerbsList[g].length()>2){Proof=(100*Points)/(vl.VerbsList[g].length()-2);}else{Proof=(100*Points)/(vl.VerbsList[g].length());}if(Proof>=90){System.out.println("Proof: "+Proof);for(inti=0;i<SimilarVerbs.size();i++){if(SimilarVerbs.get(i)==vl.VerbsList[g]){b+=1;}}if(b==0){SimilarVerbs.add(vl.VerbsList[g]);TextVerbs.add(Word);VerbsPositions.add(TempPosition);System.out.println("SimilarVerbs "+SimilarVerbs);}else{b=0;}Points=0;}else{Points=0;}}for(inti=0;i<SimilarVerbs.size();i++){LanguageProcessingManager.CA.SetSimilarWord(SimilarVerbs.get(i));LanguageProcessingManager.CA.SetVerb(TextVerbs.get(i));}LanguageProcessingManager.GOSI.SetText(Text);intsize=VerbsPositions.size();int[]result=newint[size];Integer[]temp=VerbsPositions.toArray(newInteger[size]);for(intn=0;n<size;++n){result[n]=temp[n];}LanguageProcessingManager.GOSI.SetVerbsPositions(result);Analyze=false;try{Thread.sleep(10);}catch(InterruptedExceptionex){Logger.getLogger(VerbDetector.class.getName()).log(Level.SEVERE,null,ex);}}//Analyze}publicvoidSetTextAnalyze(StringSetValue){Text=SetValue;//SimilarVerbs.clear();//TextVerbs.clear();Analyze=true;}publicList<String>GetSimilarVerbs(){returnSimilarVerbs;}publicList<String>GetVerbs(){returnTextVerbs;}publicint[]GetVerbsPosition(){intsize=VerbsPositions.size();int[]result=newint[size];Integer[]temp=VerbsPositions.toArray(newInteger[size]);for(intn=0;n<size;++n){result[n]=temp[n];}returnresult;}}
Esse e o código inteiro para quem quiser dar uma olhada.
Obrigado!
adriano_si
Boa…
Valeu por compartilhar, pode ajudar quem chegar depois na mesma questão. Excelente comportamento de fórum