繁体   English   中英

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

[英]How to delete spaces In an 2D-Array in Java?

我有一个文本文件。 我正在阅读,然后将其放入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方法,但我无法弄清楚。

例如,您可以将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(); 以确保没有前导或尾随空格可能会导致包含空值的情况...

您可以使用(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

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

希望这可以帮助。

对我而言,最快的方法是只使用嵌套循环分别打印数组的每个元素。 例如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM