gpt4 book ai didi

java - 获取没有空格的二维数组输入

转载 作者:行者123 更新时间:2023-12-02 11:52:43 39 4
gpt4 key购买 nike

我正在尝试获取输入模式矩阵。每个模式数据集将由一个单独的行组成,它给出了正方形的尺寸包含图案(大小范围为 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

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

最佳答案

假设input是一个Scanner这就是它的作用。来自其 Javadoc:

A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.

当您想要一次使用一个分隔 token 时,您可以使用扫描仪。

您可以使用 DataInputStream,它具有 readChar()

或者您可以坚持使用 Scanner 并使用 nextLine() 来获取一行的 Xs,并循环该 String

 String line = input.nextLine();
for(int j=0; j<line.length(); j++) {
pattern1[i][j]=line.charAt(j);
}

但是,如果您不想在分隔符上进行分割,那么到底为什么要使用扫描仪?这实际上是它的唯一目的。

关于java - 获取没有空格的二维数组输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778050/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com