这段代码应该读取多个购物清单的一个文本文件,然后将它们分成一个单独的杂货清单的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-(开始一个新的列表,如第一个但不同的商店和东西)
答案 0 :(得分:1)
删除此
String grocery;
while (input.hasNext())
{
grocery = input.nextLine();
}
并在此时调用makeLists。 makeLists也需要将“输入”作为参数