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

标签 java arrays string split whitespace

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

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

相应的教程:

关于java - Java中去除字符串中的所有空格并将其转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393778/

相关文章:

java - 在 Jersey 中不包含证书的情况下,Rest api 如何工作?

java - 如何使用 Java 8 Streams 在一次迭代中对 2 个不同的字段进行平面映射?

javascript - 仅获取数组中的 future 日期

C编程: Strings

javascript - String.indexOf 函数的意外结果?

java - 使用静态页面在 spring mvc 部署中苦苦挣扎

ios - Swift - 如何保存相关 map 注释(图钉)的图像?

c++ - 在 C/++ 中的函数之间传递具有动态大小的二维数组

python - 每 n 个单词将字符串拆分为更小的字符串

java - 使用 Equinox Servle Bridge 将 OSGi 应用程序部署到 Tomcat 时如何配置 Log4J?