我一直在尝试做一个程序,只写二维数组与下列文字通过打印格式。我预期的输出应该是这样的(不要介意粗体的点,它们是用于新行的):
姓名:佛罗伦萨
电话:735-1234
地址:芝加哥
姓名:乔伊斯
电话:983-3333
地址:埃文斯顿
姓名:becca
电话:456-3322
地址:橡树公园
到目前为止这是我的代码
public static void main(String [] args){
String[][] entry = {{"Florence", "735-1234", "Chicago"},
{"Joyce", "983-3333", "Evanston"},
{"Becca", "456-3322", "Oak Park"}
};
for ( int i= 0; i < entry.length; i++){
for (int q = 0; q < entry[i].length; q++){
System.out.printf("\n%s\n%s\n%s", "Name : " + entry[i][q], "Tel. # : " +entry[i][q], "Address: " + entry[i][q]);
}
System.out.println();
}
}
}
但我的输出仅显示以下内容:
姓名:佛罗伦萨
电话:佛罗伦萨
地址:佛罗伦萨
姓名:735-1234
电话:735-1234
地址:735-1234
姓名:芝加哥
电话:芝加哥
地址:芝加哥
姓名:乔伊斯
电话:乔伊斯
地址:乔伊斯
姓名:983-3333
电话:983-3333
地址:983-3333
姓名:埃文斯顿
电话:evanston
地址:埃文斯顿
姓名:becca
电话:becca
地址:贝卡
姓名:456-3322
电话:456-3322
地址:456-3322
名称:橡树公园
电话:橡树公园
地址:橡树公园
任何提示或建议将不胜感激。
2条答案
按热度按时间5us2dqdw1#
尽管您编写的大多数代码都是正确的,但您不需要第二个for循环。下面是原因
当q=0时,您的代码正在打印
名称=条目[0][0]
电话#=条目[0][0]
地址=条目[0][0]
当q=1时,您的代码正在打印
名称=条目[0][1]
电话#=条目[0][1]
地址=条目[0][1]
当q=2时,您的代码正在打印
名称=条目[0][2]
电话#=条目[0][2]
地址=条目[0][2]
我想,你对接下来会发生什么有了一个合理的想法。上述过程持续到i<3,q<3。
这种类型的打印可以通过在代码中排除第二个for循环并添加如下内容来避免
当上述代码段运行时,您可以看到上面提到的预期输出。
当i=0时,您的代码正在打印
名称=条目[0][0]
电话#=条目[0][1]
地址=条目[0][2]
接下来的两个步骤你可以遵循我猜。
希望这有帮助。
kxeu7u2r2#
最简单的方法就是使用
Arrays.deepToString(entry)
.但是,这样做的代价是不能在数组元素之间指定任何内容。如果你的重点是显示额外的文本,我建议其他答案已经存在。如果你的优先考虑是一个工作良好,易于理解和快速编码的解决方案,那么我的建议效果更好。