抱歉,如果这个问题已经被问过,但我只能找到 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/