2013-07-13 68 views
0

在此我第一次while循環不能打破 它降低j和val的值 VAL = 69 VAL = 67 在此之後它打破,但它不能 VAL = 69 VAL = 67 和它再次重複和重新 NNP是語音標籤的一個部分 ARR [] =是令牌 的集合和J給出ARR的索引 LName的是一個數組列表至極給出了數據庫字段和馬赫與標記中的第一條語句無限while循環中的Java命名實體識別

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; 
} 
+0

可以爲您提供樣品輸入? – user902383

+0

並輸出,並根據Java命名約定命名並縮小您的代碼位請更正確! – NINCOMPOOP

回答

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這是輸入您的循環,執行塊,並作爲valNER_Name.arr[val]沒有改變,它的再次執行相同的塊

+0

好抓,好工作 – 2013-07-13 20:28:44