Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 你能帮个忙吗,我的密码有问题吗_Java_List_Class_Arraylist - Fatal编程技术网

Java 你能帮个忙吗,我的密码有问题吗

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.

我有一个主类,然后当我划分每个元素(id、名称、姓氏等)时,我应该将其保存在另一个名为Student的类的列表中,并且有一个名为Student的类。存在诸如“方法集合.添加(字符串[])不适用”之类的错误。那么问题是什么呢

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也没有意义。