我正在尝试编写一段代码,允许我通读文本文件,然后返回该列表。但是,当我尝试添加文本文件的下一行时,会出现错误,不断将.add切换为.addAll,然后尝试恢复为.add。我假设这是因为我的ArrayList不是一个字符串,那么我如何转换我的ArrayList以便可以读取和添加它的内容?
private ArrayList<Patron> patronList = new ArrayList<Patron>();
private ArrayList<Patron> readPatrons(String filename) {
ArrayList<Patron> lines = new ArrayList<>();
Scanner s = null;
File infile = new File(filename);
try{
s = new Scanner(infile);
} catch (FileNotFoundException e){
e.printStackTrace();
}
while(s.hasNext())
lines.add(s.next()); // Error here.
return lines;
答案 0 :(得分:1)
你可以在其中创建一个Patron对象和一个构造函数,以便更好......例如
public class Patron{
String name;
public patron(String name){
this.name=name;
}
}
然后在接受输入时你可以做这样的事情
String S=s.next();
lines.add(new Patron(S));//or you can directly do lnes.add(new Patron(scan.next()))
答案 1 :(得分:0)
此代码lines.add(s.next());
lines是Patron对象的arraylist,因此您可以在其中添加Patron对象。
s.next()会给你一个字符串。所以这就是错误的原因。
创建一个Patron对象,然后添加到行
答案 2 :(得分:0)
line number: 13
line number: 22
line number: 31
went_in: True
myTup: ('s',)
line number: 31
went_in: True
myTup: ('s',)
Traceback (most recent call last):
[... truncated / abridged ...]
File "E:/awesome_folder_name/missing_member_var.py", line 36, in __str__
return "DemoClass" + str(self.myTup)
AttributeError: 'DemoClass' object has no attribute 'myTup'
返回一个String,而不是一个Patron。如果你的Patron类有一个构造函数,它接受一个String来创建一个Patron实例,你就必须做类似
的事情。s.next()