代码保持打印为空

时间:2013-11-25 16:56:09

标签: java arrays null

这段代码应该读取多个购物清单的一个文本文件,然后将它们分成一个单独的杂货清单的arraylist。然后它应该将arraylist的每个元素(每个单独的购物清单)按行分成新的arraylist。所以它几乎就像一个arraylist中的数组列表。这段代码是否有效?当我尝试在我的main方法中使用getArray方法获取数组然后我打印数组但它保持打印为null。怎么了?

public class Grocery {
    Scanner input;
    String groceryLine;
    String line;
    ArrayList<String> grocery = new ArrayList<String>();
    String groceryString;
    //ArrayList<String> newString = new ArrayList<String>();
    String store;
    String brand;  
    String serialNumber;
    String[] newString;

    public Grocery() throws IOException{
        File inFile = new File ("groceryList.txt");
        input = new Scanner (inFile);
        String grocery;
        while (input.hasNext()) {
            grocery = input.nextLine();
        }
    }

    public void makeLists() {
        while(input.hasNextLine()) {
            line = input.nextLine();
            if(line.equals("-finish-")){
                grocery.add(groceryLine);
            } else {
                groceryLine = groceryLine + "\n" + line;
            }
        }
    }

    public String[] getArray() {
        for(int i=0; i<grocery.size(); i++) {
            groceryString = grocery.get(i);
            newString =groceryString.split("\n");
            //store = newString[1];
            //brand = newString[4];
            //serialNumber = newString[5];
        }
        return newString;
    }             
}

groceryList.txt看起来像: -开始- 商店:SuperSupermarket 地址:玫瑰路23号 品牌:超级食品 序列号:36575 项目: 面包 牛奶 起司 火腿 汤 -finish-(表示一个列表的结尾) -start-(开始一个新的列表,如第一个但不同的商店和东西)

1 个答案:

答案 0 :(得分:1)

删除此

   String grocery;
        while (input.hasNext())
                {
                        grocery = input.nextLine();
                }

并在此时调用makeLists。 makeLists也需要将“输入”作为参数