我正在寻找一种将字符串转换为数组并去除过程中所有空格的方法。这是我所拥有的:
String[] splitArray = input.split(" ").trim();
但我不知道如何消除元素之间的空格。 例如,
输入=“1 2 3 4 5”
我希望 splitArray 为:
[1,2,3,4,5]
最佳答案
首先,这个 input.split("").trim();
不会编译,因为你无法在数组上调用 trim()
,但幸运的是你不需要这样做。您的问题是您的正则表达式 ""
将每个空格视为分割目标,并使用如下输入字符串:
String input = " 1 2 3 4 5 ";
您最终创建了一个充满多个空 ""
字符串项的数组。
所以这段代码:
String input = " 1 2 3 4 5 ";
// String[] splitArray = input.split("\\s+").trim();
String[] splitArray = input.trim().split(" ");
System.out.println(Arrays.toString(splitArray));
将产生以下输出:
[1, , , , , , , , 2, 3, 4, , , , , , 5]
你需要做的是创建一个正则表达式,将所有空格或空白字符贪婪地分组在一起,幸运的是我们有这个能力——+
运算符
只需对空白正则表达式组使用贪婪分割
String[] splitArray = input.trim().split("\\s+");
\\s
表示任何空白字符,尾随的 +
会将一个或多个连续的空白字符贪婪地聚合在一起。
实际上,在您的情况下,空格只不过是空格的倍数:""
,这就足够了:
String[] splitArray = input.trim().split(" +");
相应的教程:
- short-hand character classes -- 讨论
\\s
- repetition -- 讨论
+
以及?
和*
重复字符
关于java - Java中去除字符串中的所有空格并将其转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393778/