当前位置: 首页 > 知识库问答 >
问题:

是否可以用数组声明数组?[副本]

温镜
2023-03-14

以下是我目前掌握的情况:

Scanner reader = new Scanner(System.in);

//variables
int NumberOfStudents;

System.out.print("How many students are in the class?: ");
NumberOfStudents = reader.nextInt();
reader.nextLine();
//objects
String [] names = new String[NumberOfStudents];     //Creates an array based on the number of students 

//input
for (int i = 0; i < NumberOfStudents; i++){
    System.out.print("What is student number " + (i+1) + "'s name?: ");
    names[i] = reader.nextLine();
    double [] names[i] = new double [5];    //declares each student name as a separate array
}

其中,我有一行double[]names[I]=new double[5];,它应该取索引I处的names[]数组的值,并将其转换为长度为5的数组。因此,如果names[1]=ann,它应该创建一个长度为5的数组ann[]。但是,它会抛出一个非法的表达式开始错误。

我也尝试使用临时变量来帮助声明多个数组,但是我得到了更多的错误以及表达式的非法开始。

有没有什么方法可以在不使用多维数组的情况下解决这个问题呢?

提前道谢。

共有1个答案

申炳
2023-03-14

要在不使用多维数组的情况下做到这一点,可以创建一个students类的数组,它将保存有关学生的信息,如firstnamelastnamegrade等。

学生班级:

public class Student(){

    String fname, lname;
    int grade;

    public Student(String name){
        String[] firstLast = name.split(" ");
        fname = firstLast[0];
        if(firstLast.length>1) lname = firstLast[1];
    }

    public string setFName(String nameOfStudent){
         fname = nameOfStudent;
         return fname;
    }

// rest of code implementation
}

在当前类中:

Student array[] = new Student[NumberOfStudents];
for (int i = 0; i < NumberOfStudents; i++){
    System.out.print("What is student number " + (i+1) + "'s name?: ");
    String studentName = reader.nextLine();

    array[i] = new Student(studentName); // initialize the array 
}
 类似资料:
  • 问题内容: 看完之后,我才知道,是物体。数组的名称不是实际的数组,而只是引用。new运算符在堆上创建数组,并返回对新创建的数组对象的引用,然后将其分配给数组变量(名称)。类似于以下内容: 但是我也使用了这两种类型的数组声明。 和 以上两项均合法且可以正常工作。那么这两者之间有什么区别,我应该何时使用它们? 问题答案: 这将生成一个大小为5的数组,其中包含5个null元素: 如果这些值在编译时不是您

  • 数组要占用内存空间。程序员指定每个元素的类型和每个数组所要的元素,使编译器可以保留相应的内存空间。要告诉编译器对整型数组c保留12个元素,可以声明如下: int c[12]; 可以在一个声明中为几个数组保留内存。下列声明对整型数组 b 保留 100 个元素,对整型数组x保留27个元素: int b[100],x[27]; 数组可以声明包含其他数据类型。例如,char 类型的数组可以存放字符串。字符

  • 我试图显示一个对象数组,多个函数将不得不改变它。所以我试着让它成为可观察的(也许我错了)。 打字版本:2.7.2 rxjs:6.2.1角cli:6.0.8节点:8.11.3角:6.0.7 我的服务(IsolementService)中有一个变量声明为: 我的服务主要有两种方法 接口: 我的服务是呼叫组件: 但是当我编译时,我有一个错误TS2495:类型“Observable”不是数组或字符串类型。

  • 问题内容: 是否可以在String方法中使用默认参数。代码如下所示: 上面的代码生成错误。有可能纠正吗? 问题答案: 不,您通常这样做的方法是重载这样的方法:

  • 我想提供一些对一些特定型号/移动设备的推广。因此,如果我可以声明一组型号(如三星J5、小米Note2等),我可以很容易地启动这些型号的促销。请帮帮我.

  • 问题内容: 我知道我可以这样做: 然后只需编写语句中所需的代码。 还有其他方法可以检查它们是否相等? 问题答案: 怎么了 if(!Arrays.equals(array1,array2)) 与相同,即是同一数组。这不是大多数人期望的。 比较数组的内容。