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
而不是显式连接字符串。
美好的一天,
我是 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
而不是显式连接字符串。