如何删除 Java 中二维数组中的空格?
How to delete spaces In an 2D-Array in Java?
我有一个文本文件。我正在阅读它,然后将其放入二维数组中。有 space 个。我需要摆脱那些 spaces。但是我不能正确使用 trim
。这是我的代码:
while ((line = br.readLine() ) != null ){
char[] row = line.toCharArray();
line.trim();
int counter = 0;
for (int i = 0; i < row.length; i++) {
maze[counter][i] = row[i];
System.out.print(maze[i]);
counter++;
}
System.out.printf("%n");
}
输出结果如下:
1 1 1 0
0 0 1 0
0 0 1 0
0 9 1 0
我读取的文本文件中的元素之间有一个space。但是我得到了太多 space 作为输出。我需要得到这个
1110
0010
0010
0910
我想我应该使用trim
方法,但我想不通。
您可以使用 (string).replace(" ", '[=12=]')
将所有空格替换为空格
例如:
String line = "1 2 2 3 4 2 122 23 3 3 3 3"; //example
line = line.replace(' ', '[=10=]'); //'[=10=]' is the key for blank (or nothing)
System.out.println(line);
会产生
122342122233333
这将去掉空格,只使用有效的输入(即数字)。它说行,但唯一的输入将是相同的字符。
希望对您有所帮助。
您可以将 String#split
与类似 \s+
的正则表达式一起使用,例如...
String text = "1 1 1 0";
String elements[] = text.split("\s+");
for (String value : elements) {
System.out.println("[" + value + "]");
}
输出
[1]
[1]
[1]
[0]
(大括号表示没有 space 剩余)
在你的例子中,我可能仍然想保持我们 line = line.trim();
以确保没有前导或尾随 space 这可能会导致包含空值...
对我来说最快的方法是使用嵌套循环单独打印数组的每个元素。例如
String [][] maze = new String [4][4];
for (int i = 0; i < maze.length; i++) {
maze[i][0] = "1";
maze[i][1] = "0";
maze[i][2] = "1";
maze[i][3] = "0";
}
for (int k =0;k<maze.length;++k){
for(int j=0;j<maze.length;++j)
{
System.out.print(maze[k][j]);
}
System.out.println();
}
我有一个文本文件。我正在阅读它,然后将其放入二维数组中。有 space 个。我需要摆脱那些 spaces。但是我不能正确使用 trim
。这是我的代码:
while ((line = br.readLine() ) != null ){
char[] row = line.toCharArray();
line.trim();
int counter = 0;
for (int i = 0; i < row.length; i++) {
maze[counter][i] = row[i];
System.out.print(maze[i]);
counter++;
}
System.out.printf("%n");
}
输出结果如下:
1 1 1 0
0 0 1 0
0 0 1 0
0 9 1 0
我读取的文本文件中的元素之间有一个space。但是我得到了太多 space 作为输出。我需要得到这个
1110
0010
0010
0910
我想我应该使用trim
方法,但我想不通。
您可以使用 (string).replace(" ", '[=12=]')
将所有空格替换为空格
例如:
String line = "1 2 2 3 4 2 122 23 3 3 3 3"; //example
line = line.replace(' ', '[=10=]'); //'[=10=]' is the key for blank (or nothing)
System.out.println(line);
会产生
122342122233333
这将去掉空格,只使用有效的输入(即数字)。它说行,但唯一的输入将是相同的字符。
希望对您有所帮助。
您可以将 String#split
与类似 \s+
的正则表达式一起使用,例如...
String text = "1 1 1 0";
String elements[] = text.split("\s+");
for (String value : elements) {
System.out.println("[" + value + "]");
}
输出
[1]
[1]
[1]
[0]
(大括号表示没有 space 剩余)
在你的例子中,我可能仍然想保持我们 line = line.trim();
以确保没有前导或尾随 space 这可能会导致包含空值...
对我来说最快的方法是使用嵌套循环单独打印数组的每个元素。例如
String [][] maze = new String [4][4];
for (int i = 0; i < maze.length; i++) {
maze[i][0] = "1";
maze[i][1] = "0";
maze[i][2] = "1";
maze[i][3] = "0";
}
for (int k =0;k<maze.length;++k){
for(int j=0;j<maze.length;++j)
{
System.out.print(maze[k][j]);
}
System.out.println();
}