Java 检索字符串的ArrayList

Java 检索字符串的ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我正在努力完成以下任务: 请用户输入一个数字,如果该数字为2或更大,请将其保存到数组长度中。然后要求用户根据之前写入的数字输入字符串,最后显示之前输入的每个字符串,以完成二维数组* 假设arrayer是一个字符串对象数组,即主题名称,只需使用out。打印\n写出+arrayer[f]+:;,的平均分数;,i、 e.没有长度法 此外,z似乎没有定义,因此您需要定义它或使用外部循环的变量u或f之一,正如我在上一行中所做的那样。您会遇到什么困难?有什么问题吗?我无法显示并写出你学科名称的平均分数。主题

我正在努力完成以下任务:

请用户输入一个数字,如果该数字为2或更大,请将其保存到数组长度中。然后要求用户根据之前写入的数字输入字符串,最后显示之前输入的每个字符串,以完成二维数组*

假设arrayer是一个字符串对象数组,即主题名称,只需使用out。打印\n写出+arrayer[f]+:;,的平均分数;,i、 e.没有长度法


此外,z似乎没有定义,因此您需要定义它或使用外部循环的变量u或f之一,正如我在上一行中所做的那样。

您会遇到什么困难?有什么问题吗?我无法显示并写出你学科名称的平均分数。主题名称不会出现,我知道我做错了什么,但我希望能得到一些帮助。另一件事:where arrayer[z]。长度应显示主题名称,并根据输入的主题数量增加-您知道arrayer[z].length是字符串的长度,调用应该是要编译的长度,因此不能显示名称,是吗?是的,但在编译时我会得到这样的结果:如果您只使用arrayer[z],请写出您的平均分数[Ljava.lang.string;@2503DBD31]您仍然会得到ArraytoString的输出,这似乎是您得到的,arrayerz似乎是一个二维数组-但是,我假设您只是使用了arrayer,没有索引。线程main java.lang.ArrayIndexOutOfBoundsException中的异常:3 at VecMat.mainVecMat.java:211@AlbertoLopezRodriguez那么,您可以尝试调试什么是索引ou不受限制。如果您使用问题中发布的代码并仅使用u或f,则不应出现异常。这表示您没有发布实际代码或没有按照说明进行操作。此处的提问提示:在问题和注释中投入一些精力。仅发布异常不算例外。
// (the length [z] was already defined before)

String arrayer[] = new String[z];
for(multi=0; multi<arrayer.length; multi++){

    do {
        out.print("\n");
        out.print("Enter the name of [Subject "+(multi+1)+"] : ");
        try {
            arrayer[multi]=LeerTeclado.nextLine();  
            if (arrayer[multi].length()>15){
                out.println("\n-------------------------------------------------------");
                out.println("Name of subject should be max. 15 characters long");
                out.println("-----------------------------------------------------");
                continue;
            }
            break;
        } catch (InputMismatchException ex) {
            out.println("Subject name should be shorter than 15 characters\n");
            LeerTeclado.next();
        }
    } while ( true );   
}

// Where `arrayer[z].length` should display the **name** of the subject and increase depending on the number of subjects entered

int[][] mat;
mat=new int[z][n];

for (int u=0; u < arrayer.length ; u++) {
    for (int f=0; f < arrayer.length; f++) {
        out.print ("\nWrite your average grade of " + arrayer[z].length + ": ");
        mat[u][f] = LeerTeclado.nextInt();
    }       
}