我正在寻找一种方法将字符串转换为数组并删除过程中的所有空格。这就是我所拥有的:
String[] splitArray = input.split(" ").trim();
但我无法弄清楚如何摆脱元素之间的空间。 例如,
input =“1 2 3 4 5”
我希望splitArray为:
[1,2,3,4,5]
答案 0 :(得分:1)
首先,这个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(" +");
适当的教程:
\\s
+
还?
和*
重复字符答案 1 :(得分:0)
尝试:
String[] result = input.split(" ");