我有一个文本文件。我正在阅读它,然后将其放入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
方法,但我无法理解。
答案 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();
}