如何在Java中的2D数组中删除空格?

时间:2015-03-13 01:56:59

标签: java arrays string trim

我有一个文本文件。我正在阅读它,然后将其放入2D阵列。有空间。我需要摆脱那些空间。但我无法正确使用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

我读到的文本文件中的元素之间有一个空格。但是我输出的空间太多了。我需要把它作为

1110
0010
0010
0910

我想我应该使用trim方法,但我无法理解。

3 个答案:

答案 0 :(得分:3)

您可以将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]

(括号是为了证明没有空格)

在你的例子中,我可能仍然想要我们line = line.trim();来确保没有可能导致空值包含的前导空格或尾随空格......

答案 1 :(得分:0)

您可以使用(string).replace(" ", '\0')将所有空格替换为空白

例如:

    String line = "1 2  2 3 4 2 122 23  3  3 3 3";   //example
    line = line.replace(' ', '\0');  //'\0' is the key for blank (or nothing)
    System.out.println(line);

将产生

122342122233333

这将删除空格并仅使用有效输入(即数字)。它表示行,但唯一的输入将是相同的字符。

希望这有帮助。

答案 2 :(得分:0)

对我来说,最快捷的方法就是使用嵌套循环单独打印数组的每个元素。 E.g。

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();
     }