为什么这个println命令不会启动新行?

时间:2010-03-24 17:52:06

标签: java console println

以下是相关代码:

public static void printBoarders (Territory x) 
{
    int t = 0 ; 
    int n = 0 ; 
    for (int i = 0; i<x.borders.length; i++)
    {
        if (x.borders[i] == -1) 
            t = i ; 
    }
    for (int j = 0; j<x.borders.length; j++) 
    {
        if (x.borders[j] == 1) 
            n++ ;
    }

    Territory.translate (t) ;
    System.out.print (" has " + n + " borders: ") ;
    Territory.translate (x.borders) ;
    System.out.println (" ") ; 
}

当我运行它时,我将所有内容都放在一行而没有换行符。为什么System.out.println (" ") ;没有创建换行符?

以下是输出结果的示例:

Northwest Territory, Alberta, Kamchatka, hidavid-names-macbook-pro:~ davidname$

编辑:问题是这个方法从未被调用过。我正在取代的另一个是。一切都很好。

7 个答案:

答案 0 :(得分:2)

您所展示的代码都不是“西北地区,阿尔伯塔省,堪察加半岛”的输出。

.translate()有什么作用?它必须在那里。

答案 1 :(得分:1)

我也没看到它打印has " + n + " borders:,所以我要说代码永远不会因某种原因被执行

答案 2 :(得分:1)

我只能看到

System.out.print (" has " + n + " borders: ") ;

实际上我不明白为什么你会看到任何其他输出

  

“有5个边框:”

答案 3 :(得分:1)

上面的代码段会开始一个新行。问题是没有调用printBoarders方法。

答案 4 :(得分:0)

我相信它是从最后一次System.out.print调用离开它的行的中间开始的。

来自PrintWriter的文档,例如

public void println(String x)
  

打印字符串然后终止   这条线。

答案 5 :(得分:0)

只有最后一个印刷品是println,第一个是印刷品,所以只有空格“”在最后打印到新行...

编辑:你的意思是你多次打电话?Y

答案 6 :(得分:0)

只需快速扫描此代码,看起来似乎已经达到了println()。实际上,我甚至没有看到你如何得到你的输出。这是完整的代码吗?这是编写小型单元测试的一个很好的例子。