我必须编写一个名为print()的方法,该方法按如下方式打印出结果;
Original:
-----------
|9|7|9|4|3|
-----------
Sorted:
-----------
|3|4|7|9|9|
-----------
我的新代码如下:
for(int i=0;i< intArray.length; i++)
{
if(i==intArray.length-1)
{
System.out.print("----\n");
}
else{
System.out.print("----");
}
}
for(int i=0;i< intArray.length; i++)
{
if(i==0)
{
System.out.println("| "+intArray[i]+" | ");
}
else if(i==intArray.length-1)
{
System.out.print(intArray[i]+" |\n");
}
else{
System.out.print(intArray[i]+" | ");
}
}
for(int i=0;i< intArray.length; i++)
{
if(i==intArray.length-1)
{
System.out.print("----\n");
}
else{
System.out.print("----");
}
}
它几乎完美,除了一个数字不合适并显示如下:
| 3 |
| 2 |
频率:
| 9 |
| 1 |
频率:
有人可以告诉我问题是什么,因为我无法弄明白。感谢您在评论中的所有帮助
答案 0 :(得分:2)
System.out.println
在输出后追加一个换行符,即在代码中的每个数组项之后。您应该使用System.out.print
代替。此外,您看起来只是在阵列的末尾打印管道,使其看起来像
34799|
对于示例输出,您需要类似的东西
public void print()
{
//no need for \n, println produces one at the end of the string
System.out.println("-------------------");
System.out.print("|");
for(int i=0;i< intArray.length; i++)
{
System.out.print(intArray[i] + "|");
}
System.out.print("\n-------------------\n");
}
答案 1 :(得分:0)
不需要if-else
,我们可以使用简单的for循环打印数组,例如:
int[] array = new int[]{1,2,3,4,5};
System.out.println("--------------");
System.out.print("|");
for(int element : array){
System.out.print(element + "|");
}
System.out.println("--------------");
<强>更新强>
以下是它的工作原理:
println()
打印第一个虚线。print()
打印首字母&#39; |&#39; for loop
print()
在&{39; |&#39; for loop
版面元素中
println()
在数组内容后打印虚线。