0

在这我的第一个 while 循环不能中断。它减小了 j 和 val 的值

val = 69
val = 67 

在此之后它会破裂但它不能

val = 69
val = 67 

它一次又一次地重复
NNP 是词性标记
arr[]= 是标记的集合,
J 给出了 arr 的索引
LName 是一个数组列表,它给出了数据库字段并与第一个 if 语句中的标记匹配

public String NER_Name_LName(String tokens)
{
    // System.out.println("Hello");
    ArrayList<String> LNames = dbconnection1.getTableContents("NER_LName");
    int l=NER_Name.j; 
    
    int val=(l+1), lm=0, p=0;
    String result="";
    String res[] = new String [20];
    
    for(int x=0;x<=(LNames.size()-1);x++)
    {
          //  System.out.println(LNames.size() + "Hello");
        
        if(tokens.equals(LNames.get(x)))
        {
             //System.out.println(NER_Name.arr[val] + val);
            //System.out.println(LNames.get(x) + "Hello");
            while("NNP".equals(NER_Name.arr[val]))
            {
             System.out.println(NER_Name.arr[val]+"lol" + val);
              
                NER_Name.j=NER_Name.j-2;
                val=val-2;
                System.out.println(val+ "after");
            }
           while("NNP".equals(NER_Name.arr[val]))
            {
                res[p]=NER_Name.arr[NER_Name.j];
                p++;
                NER_Name.j=NER_Name.j+2;
                
            }
            
            for (int o=0;o<=(p-1);o++)
            {
                result=result+" "+res[o];
            }
        }
    }  
    //System.out.println(result +"hello");
    return result;
}
4

1 回答 1

0
 while("NNP".equals(NER_Name.arr[val]))
            {
                res[p]=NER_Name.arr[NER_Name.j];
                p++;
                NER_Name.j=NER_Name.j+2;

            }

考虑这段代码,假设"NNP".equals(NER_Name.arr[val]) = true它进入你的循环,执行块,并且val没有NER_Name.arr[val]改变,它再次执行相同的块

于 2013-07-13T20:24:07.213 回答