Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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_Arrays_Multidimensional Array - Fatal编程技术网

Java 以表格形式显示两个一维数组和一个二维数组

Java 以表格形式显示两个一维数组和一个二维数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我是Java学习者,正在测试Java代码,目前对Java没有太多掌握 目前我想要实现的是,我有两个一维字符串数组和一个二维整数数组。我希望结果以表格形式显示,但我无法这样做。我的代码如下 import java.util.*; public class StudentResults { static String studentName; static String courseName; static int courseMarks; static Strin

我是Java学习者,正在测试Java代码,目前对Java没有太多掌握

目前我想要实现的是,我有两个一维字符串数组和一个二维整数数组。我希望结果以表格形式显示,但我无法这样做。我的代码如下

import java.util.*;

public class StudentResults {
    static String studentName;
    static String courseName;
    static int courseMarks;
    static String[] student = { "Jack Smith", "Jim Lucas", "Beck Barber",
            "Ann Walker", "Lucy Boxer" };

    static String[] course = { "Maths", "Business", "Java", "Design", "Project" };

    public static void studentMarks() {
        int[][] marks = { { 89, 70, 56, 87, 65 }, { 70, 65, 70, 83, 78 },
                { 60, 90, 63, 56, 79 }, { 74, 78, 45, 73, 85 },
                { 80, 90, 60, 70, 80 } };

        for (int i = 0; i < student.length; i++) {
            studentName = student[i];
            System.out.printf("\t\t" + studentName + "\t");

        }
        System.out.println("");
        for (int j = 0; j < course.length; j++) {
            courseName = course[j];
            System.out.println(courseName + "\t");
        }
        for (int m = 0; m < marks.length; m++) {
            for (int n = 0; n < marks.length; n++) {
                courseMarks = marks[m][n];
                System.out.print("\t\t" + courseMarks + "\t\t");
            }
            System.out.println("");
        }

    }

    public static void main(String args[]) {
        studentMarks();

    }
}
import java.util.*;
公开课学生成绩{
静态字符串studentName;
静态字符串courseName;
静态int课程标记;
静态字符串[]学生={“杰克·史密斯”、“吉姆·卢卡斯”、“贝克·巴伯”,
“安·沃克”、“露西·博克瑟”};
静态字符串[]课程={“数学”、“商业”、“Java”、“设计”、“项目”};
公共静态无效学生分数(){
int[][]标记={{89,70,56,87,65},{70,65,70,83,78},
{ 60, 90, 63, 56, 79 }, { 74, 78, 45, 73, 85 },
{ 80, 90, 60, 70, 80 } };
for(int i=0;i
我得到的分数输出在表中,但不与课程名称内联。我只是想知道是否有一种方法可以通过我的工作方式实现这一点


干杯,

我想这是一种家庭作业(或自学),所以我会给出一个提示,而不是完整的解决方案:

您要打印每个主题,然后是该特定主题的每个标记。 当前,您正在打印所有主题的列表,然后再打印每个主题的标记

所以这部分代码:

    for (int j = 0; j < course.length; j++) {
        courseName = course[j];
        System.out.println(courseName + "\t");
    }
    for (int m = 0; m < marks.length; m++) {
        for (int n = 0; n < marks.length; n++) {
            courseMarks = marks[m][n];
            System.out.print("\t\t" + courseMarks + "\t\t");
        }
        System.out.println("");
    }
for(int j=0;j
应该是一个嵌套循环,而不是两个单独的循环。也就是说,第二个循环应该在第一个循环内

所以你打印一个主题,然后打印该主题的所有标记,然后打印下一个主题,然后打印第二个主题的所有标记,依此类推


在您获得所需的确切布局之前,仍然需要进行一些修改。但是请记住,
System.out.println()
将打印参数,后跟新行。

删除打印课程的第二个for循环,并在第三个循环中添加打印课程的逻辑

代码应该是这样的

import java.util.*;

public class StudentResults {
static String studentName;
static String courseName;
static int courseMarks;
static String[] student = { "Jack Smith", "Jim Lucas", "Beck Barber",
        "Ann Walker", "Lucy Boxer" };

static String[] course = { "Maths", "Business", "Java", "Design", "Project" };

public static void studentMarks() {
    int[][] marks = { { 89, 70, 56, 87, 65 }, { 70, 65, 70, 83, 78 },
            { 60, 90, 63, 56, 79 }, { 74, 78, 45, 73, 85 },
            { 80, 90, 60, 70, 80 } };

    for (int i = 0; i < student.length; i++) {
        studentName = student[i];
        System.out.printf("\t\t" + studentName + "\t");

    }
    System.out.println("");
    /*for (int j = 0; j < course.length; j++) {
        courseName = course[j];
        System.out.println(courseName + "\t");
    }*/
    for (int m = 0; m < marks.length; m++) {
         courseName = course[m];
         System.out.print(courseName + "\t\t");
        for (int n = 0; n < marks.length; n++) {
            courseMarks = marks[m][n];
            System.out.print("\t\t" + courseMarks + "\t\t");
        }
        System.out.println("");
    }

}

public static void main(String args[]) {
    studentMarks();

}
import java.util.*;
公开课学生成绩{
静态字符串studentName;
静态字符串courseName;
静态int课程标记;
静态字符串[]学生={“杰克·史密斯”、“吉姆·卢卡斯”、“贝克·巴伯”,
“安·沃克”、“露西·博克瑟”};
静态字符串[]课程={“数学”、“商业”、“Java”、“设计”、“项目”};
公共静态无效学生分数(){
int[][]标记={{89,70,56,87,65},{70,65,70,83,78},
{ 60, 90, 63, 56, 79 }, { 74, 78, 45, 73, 85 },
{ 80, 90, 60, 70, 80 } };
for(int i=0;i

}

系统输出打印(courseName+“\t”);将是一个很好的方式来显示记录:)谢谢考尔斯的答复。我试图通过在m循环之后的末尾引入}for j循环来实现嵌套循环,但它给了我一个显示,就像每行显示一个新表一样。(我不想这样)我只想让第一行的结果显示数学,第二行的商业标记等等…你可以在第二个循环中删除外部for循环:
for(int m=0;m
并使用j循环变量而不是m。因此只需要两个for循环)同样正如@Mohit所指出的,避免直接在coursenameuse System.out.print(courseName+“\t”)之后打印新行;