如何删除 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();
     }