打印阵列时更改行

时间:2015-11-19 11:31:45

标签: java println

我正在尝试读取txt文件并打印相反的行。例如: TXT:

3 //size of matrix  
3 4 5  
5 6 7  
6 7 8  
输出应该是:

6 7 8  
5 6 7  
3 4 5  
我写了一个程序。程序打印:

5 6 7  
3 4 5  

没有第一行:6 7 8

我的错误是什么?

public static void main (String[] args)  {
   int matrixSize = StdIn.readInt(); 
   String [] array = new String [matrixSize]; 
   for (int i=0; i <= matrixSize-1; i++)
   { 
      array[i] = StdIn.readLine();
      StdOut.println(array[i]);
   } 
   for (int j=matrixSize-1; j >= 1; j--)
   {
      StdOut.println(array[j]);
   }
}

1 个答案:

答案 0 :(得分:0)

此循环将从最后一个元素迭代到第二个元素。

for (int j=matrixSize-1; j >= 1; j--)

更改为还包括第一个元素

for (int j=matrixSize-1; j >= 0; j--)

似乎StdIn.readInt()也没有消耗新的换行符。所以当你在那之后做StdIn.readLine()时,你得到一个空行。扫描数字后,该空行是第一行剩余的行。一个简单的解决方法是获得matrixSize,如下所示:

String text = StdIn.readLine();
int matrixSize = Integer.parseInt(text);