无空间地进行二维数组输入

时间:2017-12-12 17:11:58

标签: java

我正在尝试采用输入模式矩阵。每个 模式数据集将由一行上的整数组成,它给出了正方形的尺寸 包含模式(大小将在1到10之间)。以下行将包含每一行 第一图案和第二图案的并排格式,由空格隔开。输入将如下所示

5
X...X ....X
.X... ...X.
...X. .X...
..X.X ..X..
....X XX..X

我试过以下

Scanner input= new Scanner(System.in);
    int n= input.nextInt();
                char [][] pattern1=new char[10][10];
                char [][] pattern2=new char[10][10];
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++){
                        pattern1[i][j]=input.next().charAt(0);
                    }
                    for(int j=0;j<n;j++){
                        pattern2[i][j]=input.next().charAt(0);
                    }
                }

问题是每个角色后我都要占用额外的空间。像这样。

5
X . . . X . . . . X
. X . . . . . . X .
. . . X . . X . . .
. . X . X . . X . .
. . . . X X X . . X

但我需要在没有额外空间的情况下阅读。在这方面有谁能帮助我?

1 个答案:

答案 0 :(得分:1)

假设inputScanner就是它的作用。来自它的Javadoc:

  

扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。

如果您希望一次使用一个分隔标记,则可以使用扫描仪

您可以改为使用DataInputStreamreadChar()

或者您可以坚持使用Scanner并使用nextLine()抓住一行X. s,然后循环String s String line = input.nextLine(); for(int j=0; j<line.length(); j++) { pattern1[i][j]=line.charAt(j); } 1}}。

Scanner

但是,如果你不想拆分分隔符,你为什么要使用In [25]: arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) In [26]: arr Out[26]: array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]]) In [27]: np.delete(arr, 1, axis=0) Out[27]: array([[ 1, 2, 3, 4], [ 9, 10, 11, 12]]) 呢?这实际上是它的唯一目的。