2016-12-29 7 views
-1

Таким образом, приведенный ниже код находит слова в документе, специфичные для ввода слова. Подсчитывает количество раз, когда слова встречаются в каждом предложении, а затем хранит счет в аррайалистах на нижней метке a для конуса и b для ctwo.Использование Arraylist в разных классах

Я хочу использовать arraylists в другом классе, но не могу найти способ сделать это.

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'? – Jyr

ответ

1
  1. Лучший подход: Вы оба ArrayLists в основной(), передавать их в качестве параметров функции для функций (из любого класса), которые нуждаются в них.

  2. Не очень хороший подход: Храните ArrayLists в качестве защищенных оболочкой переменных статического класса в классах конуса и ctwo. Вы можете получить к ним доступ как cone.A и ctwo.B.

0

Ваша программа кажется странной. Я бы предложил читать слова и добавлять разные слова в hashmap с ключом как слово и значение, как он подсчитывает.

+0

как я могу это сделать? – DMW18

1

Передайте тот же список массивов в конструкторе обоих классов.

+0

Как? Я новичок в java, как вы это делаете? – DMW18

Смежные вопросы