使用和数组打印破折号

时间:2016-03-27 22:15:07

标签: java

我必须编写一个名为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 | 9 | 6 |

排序:

| 2 |

3 | 6 | 9 | 9 |

频率:

原件:

| 9 |

1 | 6 | 6 | 4 | 8 | 5 | 8 | 5 | 1 |

排序:

| 1 |

1 | 4 | 5 | 5 | 6 | 6 | 8 | 8 | 9 |

频率:

有人可以告诉我问题是什么,因为我无法弄明白。感谢您在评论中的所有帮助

2 个答案:

答案 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版面元素中
  • 无需打印最后一个&#39; |&#39;它已经在for循环中完成了。
  • 最后println()在数组内容后打印虚线。