我正在尝试采用输入模式矩阵。每个 模式数据集将由一行上的整数组成,它给出了正方形的尺寸 包含模式(大小将在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
但我需要在没有额外空间的情况下阅读。在这方面有谁能帮助我?
答案 0 :(得分:1)
假设input
是Scanner
,就是它的作用。来自它的Javadoc:
扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。
如果您希望一次使用一个分隔标记,则可以使用扫描仪。
您可以改为使用DataInputStream
,readChar()
。
或者您可以坚持使用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]])
呢?这实际上是它的唯一目的。