2016-12-29 26 views
-1

因此,下面的代碼將文檔中的單詞視爲由單詞輸入特定的單詞。統計每個句子中單詞出現的次數,然後將該計數存儲在圓錐體底部標籤a處的數組列表中,將數量存儲在ctwo中。在不同類別中使用Arraylist

我想在另一個類中使用arraylist,但似乎無法找到一種方法來完成它。

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

public class exc { 

    public exc() { 
     } 
public static void main(String[] args) throws Exception  { 
cone aa = new cone(); 
ctwo bb = new ctwo(); 
// after this I'm stuck 

} 
} 
    import java.io.BufferedReader; 
     import java.io.FileReader; 
     import java.util.Arrays; 
     import java.util.List; 

public class cone { 

public void cone() throws Exception  { 

        BufferedReader e = new BufferedReader(new FileReader("words to be read.txt")); 
         String o; 
         while((o = e.readLine()) != null){ 

          String[] sentences = o.split("\\b[.!?]\\s+"); 

         //System.out.println(o); 
          String [] h = sentences; 

         { 

          BufferedReader t = new BufferedReader(new FileReader("Text to be scan.txt")); 
          String g; 
          while((g = t.readLine()) != null){ 

           String[] set=g.split(" "); 

           List<String> list = Arrays.asList(set); 

          // System.out.println(Arrays.toString(set)); 
           //System.out.println(o); 

          int sentenceNumb=1; 
          for (String sentence: h) { 
           int counter=0; 
           String[] words = sentence.replace(".", "").split(" "); 
           for(String word: words) { 
            if (list.contains(word)) { 
             counter++; 
            } 
           } 


           List<Integer> A = Arrays.asList(counter++); 

          } 


          } 



         } 
         } 

} 
} 

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.util.Arrays; 
import java.util.List; 


public class ctwo { 


public void ctwo() throws Exception  { 

BufferedReader e = new BufferedReader(new FileReader("words to be read.txt")); 
    String o; 
    while((o = e.readLine()) != null){ 

     String[] sentences = o.split("\\b[.!?]\\s+"); 

    //System.out.println(o); 
     String [] h = sentences; 

    { 

     BufferedReader t = new BufferedReader(new FileReader("Text to be scan.txt")); 
     String g; 
     while((g = t.readLine()) != null){ 

      String[] set=g.split(" "); 

      List<String> list = Arrays.asList(set); 

     // System.out.println(Arrays.toString(set)); 
      //System.out.println(o); 

     int sentenceNumb=1; 
     for (String sentence: h) { 
      int counter=0; 
      String[] words = sentence.replace(".", "").split(" "); 
      for(String word: words) { 
       if (list.contains(word)) { 
        counter++; 
       } 
      } 


      List<Integer> B= Arrays.asList(counter++); 

     } 


     } 



    } 
    } 
} 
} 
+0

使兩個方法都返回'ArrayList's? – Jyr

回答

1
  1. 最好的辦法:你有兩個在main(),其作爲傳遞函數參數給需要它們的功能(從任何類)中的ArrayList。

  2. 不太好的方法:將ArrayLists作爲包保護的靜態類變量存儲在cone和ctwo類中。你可以通過cone.A和ctwo.B訪問它們。

0

你的程序看起來很奇怪。 我會建議閱讀單詞並添加不同的單詞作爲單詞和值,因爲它的計數密鑰hashmap。

+0

我該怎麼做? – DMW18

1

在兩個類的構造函數中傳遞相同的數組列表。

+0

如何?我是新來的Java你如何做到這一點? – DMW18