Java 以表格形式显示两个一维数组和一个二维数组
我是Java学习者,正在测试Java代码,目前对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
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”)之后打印新行;