Java 字符串数组迭代:有什么方法可以使它更简单吗?

Java String Array Iteration: Is there any way to make this simpler?

美好的一天,

我是 Java 的新手,一直在练习 嵌套循环 迭代。我想知道是否有更简单的方法来做到这一点?特别是在我不得不把这个 [j+1].

String[][] entry = {{"010", "John", "Male", "21"},
                {"011", "Mary", "Female", "25"},
                {"012", "Joseph", "Male", "24"},
                {"013", "Peter", "Male", "22"}};


for ( int i = 0; i < entry.length; i++) {

    for ( int j = 0; j < entry[i].length;) {
        System.out.print("ID: " + entry[i][j] + "\n");
        System.out.print("Name: " + entry[i][j+1] + "\n");
        System.out.print("Gender: " + entry[i][j+2] + "\n");
        System.out.print("Age: " + entry[i][j+3] + "\n");
        System.out.println(""); 
        break;
    }           
}

预期的输出是这样的:

编号:010
姓名:约翰
性别:男
年龄:21

编号:011
姓名:玛丽
性别:女
年龄:25

编号:012
姓名:约瑟夫
性别:男
年龄:24

编号:013
姓名:彼得
性别:男
年龄:22

非常感谢您的帮助!

呃...你可以删除你的内部循环,因为你在第一次迭代中中断了,因此根本没有循环。

String[][] entry = { {"010", "John", "Male", "21"},
                     {"011", "Mary", "Female", "25"},
                     {"012", "Joseph", "Male", "24"},
                     {"013", "Peter", "Male", "22"} };


for (int i = 0; i < entry.length; i++) {
    System.out.print("ID: " + entry[i][0] + "\n");
    System.out.print("Name: " + entry[i][1] + "\n");
    System.out.print("Gender: " + entry[i][2] + "\n");
    System.out.print("Age: " + entry[i][3] + "\n");
    System.out.println("");       
}

编辑:如果嵌套循环是必需的,您可以像这样获得相同的输出:

String[] type = { "ID", "Name", "Gender", "Age" };

String[][] entry = { {"010", "John", "Male", "21"},
                     {"011", "Mary", "Female", "25"},
                     {"012", "Joseph", "Male", "24"},
                     {"013", "Peter", "Male", "22"} };


for (int i = 0; i < entry.length; i++) {
    for (int j = 0; j < entry[i].length; j++) {
        System.out.println(type[j] + ": " + entry[i][j]);
    }
    System.out.println("");       
}

但是,我不建议这样做。

我想这就是你要找的:

String[][] entry = {{"010", "John", "Male", "21"},
                {"011", "Mary", "Female", "25"},
                {"012", "Joseph", "Male", "24"},
                {"013", "Peter", "Male", "22"}};

String[] label = {"ID", "Name", "Gender", "Age"};

for (int i = 0; i < entry.length; i++) {
    for (int j = 0; j < entry[i].length;) {
        System.out.println(label[j] + ": " + entry[i][j]);
    } 
    System.out.println(); 
}

我删除了 break。它也不应该出现在原始代码中。

最好使用println而不是附加换行符。 (附加 \n 不可移植。要使用的 correct 行分隔符是 OS 依赖的。有一些方法可以附加正确的行分隔符,但更简单println多多关照。)

我们也可以使用 printf 而不是显式连接字符串。