我有一个主类,然后当我划分每个元素(id,name,surname,...)时,我应该将它保存在名为Student的另一个类的列表中,并且还有班级学生。有一些错误,例如“方法Collection.add(String [])不适用”。那么问题是什么?
public class ProjectWork{
public static void main(String[] args) throws IOException{
Scanner fin = new Scanner(new File("data.txt"));
int i;
String str,name="",surname="",id="";
String [] midterms = new String[3];
while(fin.hasNextLine()){
str = fin.nextLine();
StringTokenizer toks = new StringTokenizer(str,"|");
while(toks.hasMoreTokens()){
id = toks.nextToken();
name = toks.nextToken();
surname = toks.nextToken();
for(i=0;i<3;i++){
midterms[i] = toks.nextToken();
}
}
Student(id,name,surname,midterms);
}
}
public static void Student(String id, String name, String surname, String[] midterms) throws IndexOutOfBoundsException{
private List<String[]> students = new ArrayList<String[]>();
students.add(id);
students.add(name);
students.add(surname);
}
}
答案 0 :(得分:2)
因为,请看这一行:
private List<String[]> students = new ArrayList<String[]>();
它接受字符串数组,在这里只添加字符串,如下所示:
students.add(id);
所以你得到了那个错误。要么像这样声明students
:
private List<String> students = new ArrayList<String>();
或使用add
方法添加“String”数组。
答案 1 :(得分:1)
您已宣布收集,students
应该使用String
数组...
List<String[]> students = new ArrayList<String[]>();
但是你正在尝试添加String
元素,这不是一回事。
更改它以便添加String[]
数组...
List<String[]> students = new ArrayList<String[]>();
students.add(new String[]{id,name, surname});
或重新使用String
List<String> students = new ArrayList<String>();
students.add(id);
students.add(name);
students.add(surname);
根据我的理解,您的代码正在尝试做,我认为您想要第一个。
(ps-局部变量不能用访问修饰符声明(即private
),你想要摆脱它)
总的来说,你的代码没有多大意义。您正在调用static
方法Student
,该方法会创建一个List
,向其中添加一些元素以及丢弃所有可用的方法。 Student
假设是一个班级吗?
答案 2 :(得分:0)
您正在尝试将String对象添加到List,更改此项,因为您没有添加三个String类型的数组:
private List<String> students = new ArrayList<String>();
答案 3 :(得分:0)
您声明学生输入字符串数组。所以你应该在集合中添加一个数组。
要添加id,name,surname,您可以将集合类型声明为String。 即List&lt; String&gt; students = new ArrayList&lt; String&gt;();
方法应该是这样的:
public static void Student(String id,String name,String surname,String [] midterms)抛出IndexOutOfBoundsException {
//列表与LT;字符串[] GT; students = new ArrayList&lt; String []&gt;();
列表与LT;字符串&GT; students = new ArrayList&lt; String&gt;();
students.add(ID);
students.add(名称);
students.add(姓氏);
}