类 String 的拆分方法忽略分号分隔符

2022-09-04 01:36:38

可能的重复:
Java split()方法在末尾剥离空字符串?

在Java中,我使用字符串拆分方法来拆分包含由分号分隔的值的字符串。

目前,我有以下行,适用于所有情况下的99%。

String[] fields = optionsTxt.split(";");

当使用以下字符串时,一切都是完美的:

"House;Car;Street;Place" => [House] [Car] [Street] [Place]

但是当我使用下面的字符串时,拆分方法会忽略最后两个分号。

"House;Car;;" => [House][Car]

怎么了?或者有什么解决方法吗?


答案 1

请尝试以下操作:

String[] = data.split(";", -1);

有关详细信息,请参阅 Javadoc 以获取采用两个参数的拆分方法。

当调用时,它会调用并丢弃尾随的空字符串(如文档所说),当调用时,它不会丢弃任何内容。String.split(String)String.split(String, 0)String.split(String, n)n < 0


答案 2

您可以使用番石榴的分裂器

从文档中:

Splitter.on(',').split("foo,,bar, quux")

将返回可迭代的["foo", "", "bar", " quux"]