删除字符串中的所有空格并将其转换为Java中的数组

时间:2017-09-24 19:02:40

标签: java arrays string split whitespace

我正在寻找一种方法将字符串转换为数组并删除过程中的所有空格。这就是我所拥有的:

        String[] splitArray = input.split(" ").trim();

但我无法弄清楚如何摆脱元素之间的空间。 例如,

input =“1 2 3 4 5”

我希望splitArray为:

[1,2,3,4,5]

2 个答案:

答案 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(" +");

适当的教程:

答案 1 :(得分:0)

尝试:

String[] result = input.split(" ");