使用扫描仪的字符串数组列表

我有一个简单的分配问题,即创建一个具有数组列表的类,该列表用于存储命令行中的单词,每个单词都附加到数组列表的末尾,然后在列表中搜索特定单词(“ the” )并打印单词出现的位置,以及另一种方法来返回一个新的数组列表,该列表的单词位于数字指定的位置。

我写了下面的代码。在Eclipse IDE中,它没有显示任何错误,但是当我尝试通过“运行配置”运行代码并输入以下虚拟文本时:“快速的棕色狐狸跳过了懒狗。快速的棕色狐狸跳过了懒狗。敏捷的棕狐跳过了那只懒狗。”,它不起作用。我不确定为什么,您能给我建议吗?谢谢!

import java.util.ArrayList;
import java.util.Scanner;
class Search {
    ArrayList<String> list;

    public Search(){
        list = new ArrayList<String>();
    }

    public void read(){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext())
            list.add(scanner.next());
        scanner.close();
    }

    public void find(String word){
        for(int i = 0; i < list.size(); i++)
            if(list.get(i).equals(word))
                System.out.println(i);
    }

    public ArrayList<String> subsequence(int[] positions){
        ArrayList<String> result = new ArrayList<String>();
        for(int i = 0; i < positions.length; i++)
            if(positions[i] >= 0 && positions[i] < list.size())
                result.add(list.get(positions[i]));
        return result;
    }

    public static void main(String[] args){
        Search search = new Search();
        search.read();
        search.find("the");
        for(String s : search.subsequence(new int[]{0, 3, 4}))
            System.out.println(s);
    }
}