java - Java 将 StringBuilder 拆分为数组后删除空字符串

标签 java arrays string split

抱歉,如果这个问题已经被问过,但我只能找到 c# 的结果。 所以我有这个 StringBuilder:

 StringBuilder sb = new StringBuilder(" 111     11 ");

我想使用此方法将其拆分为一个数组:

String[] ar = sb.toString().split(" ");

正如预期的那样,结果数组有一些空条目。我的问题是,当我拆分 StringBuilder 时,是否可以直接删除这些空白,或者我必须在之后执行此操作。

最佳答案

split 采用正则表达式。所以:

String[] ar = sb.toString().split("\\s+");

字符串 \\s 是表示“任何空白”的正则表达式,+ 是:其中 1 个或多个。如果您只想按空格分割(而不是按换行符、制表符等),请尝试: String[] ar = sb.toString().split("+"); 字面意思是: “拆分为一个或多个空格”。

这个技巧几乎适用于任何分隔符。例如,用逗号分隔?尝试: .split("\\s*,\\s*"),即:0 个或多个空格、一个逗号,后跟 0 个或多个空格(正则表达式占用的空间尽可能多)可以)。

请注意,此技巧不会消除前导和尾随空格。但要做到这一点,请使用修剪。把它们放在一起:

String[] ar = sb.toString().trim().split("\\s+");

对于逗号:

String[] ar = sb.toString().trim().split("\\s*,\\s*");

关于java - Java 将 StringBuilder 拆分为数组后删除空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214149/

相关文章:

Android 中带有选择器的 Java TCP 服务器 NIO

java - Java 中的字符串和并发

c++ - 当我尝试删除 [] 数组时,为什么我的程序会抛出 SIGABRT?

c - 为什么这个指针交换在字符串反转中会失败?

java - Java 中字符串的奇怪问题

Python:字符串计数内存错误

java - 不同的区域设置会发生 NumberFormatException

java - 多个 Java 输入

php:显示关联数组的每个元素的键和值

javascript - 停止更改一个对象参数影响该对象的副本