Java 你能帮个忙吗,我的密码有问题吗
我有一个主类,然后当我划分每个元素(id、名称、姓氏等)时,我应该将其保存在另一个名为Student的类的列表中,并且有一个名为Student的类。存在诸如“方法集合.添加(字符串[])不适用”之类的错误。那么问题是什么呢Java 你能帮个忙吗,我的密码有问题吗,java,list,class,arraylist,Java,List,Class,Arraylist,我有一个主类,然后当我划分每个元素(id、名称、姓氏等)时,我应该将其保存在另一个名为Student的类的列表中,并且有一个名为Student的类。存在诸如“方法集合.添加(字符串[])不适用”之类的错误。那么问题是什么呢 public class ProjectWork{ public static void main(String[] args) throws IOException{ Scanner fin = new Scanner(new File("data.
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);
}
}
公共类项目工作{
公共静态void main(字符串[]args)引发IOException{
扫描仪fin=新扫描仪(新文件(“data.txt”);
int i;
字符串str,name=“”,name=“”,id=“”;
字符串[]期中=新字符串[3];
while(fin.hasNextLine()){
str=fin.nextLine();
StringTokenizer toks=新的StringTokenizer(str,“|”);
while(toks.hasMoreTokens()){
id=toks.nextToken();
name=toks.nextToken();
姓氏=toks.nextToken();
对于(i=0;iBecause),请参见此行:
private List<String[]> students = new ArrayList<String[]>();
所以你得到了这个错误。要么像这样声明学生
:
students.add(id);
private List<String> students = new ArrayList<String>();
private List students=new ArrayList();
或者使用add
方法添加“String”数组。您已声明要收集,学生应使用String
数组
List<String[]> students = new ArrayList<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);
List students=new ArrayList();
学生。添加(id);
学生。添加(姓名);
学生。加(姓);
根据我对你的代码的理解,我认为你想要第一个
(ps-局部变量不能用访问修饰符声明(即private
),您需要去掉它)
总的来说,您编写的代码没有多大意义。您正在调用一个静态
方法学生
,该方法创建一个列表
,向其中添加一些元素,并在其存在时丢弃所有工作。学生
是否假定为一个类?如果您试图向列表中添加字符串对象,请更改它,因为未添加三个字符串类型的数组:
private List<String> students = new ArrayList<String>();
private List students=new ArrayList();
您将students类型声明为字符串数组。因此您应该向集合中添加一个数组
要添加id、名称、姓氏,可以将集合类型声明为字符串。
ie列表学生=新建ArrayList()
方法应如下所示:
students.add(id);
private List<String> students = new ArrayList<String>();
public static void Student(字符串id、字符串名称、字符串姓氏、字符串[]中期)抛出IndexOutOfBoundsException{
//列出学生=新建ArrayList();
列出学生=新建ArrayList();
学生。添加(id);
学生。添加(姓名);
学生。加上(姓氏);
}我是说,A)你的代码与你所说的不一样,B)它确切地告诉你问题出在哪里;你试图在列表中添加一个字符串,不清楚这里的学生是什么。它应该是ProjectWork的内部类吗?还是在别处声明并导入?不管怎样,行公共静态无效Student(…)没有意义。在students变量上使用private也没有意义。