使用.split(“;”)计算字符串中的值数

cwtwac6a  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(456)

这个问题在这里已经有答案了

java字符串拆分删除空值(5个答案)
四年前关门了。
如何成功地计算字符串中以分号分隔的值的数目(包括空值)?
例如,我有一个字符串:

;;C;D;E;F;G

正确的值数应该是“7”,但是当我使用 .split 它返回错误的数字,因为值为空。
我怎样才能解决这个问题?

kuuvgm7e

kuuvgm7e1#

从你的问题的例子可以很好地工作,因为

System.out.println(";;C;D;E;F;G".split(";").length);

印刷品 7 .
但当空元素位于字符串末尾时,问题可能会出现

System.out.println(";;C;D;E;F;G;;".split(";").length);

它也会回来 7 . 为什么?因为 split(regex) 使用 split(regex,limit) 版本 limit 设置为 0 . 此限制表示将删除尾部空元素的拆分行为。
如果不想删除尾随的空元素,请使用负数限制,如

System.out.println(";;C;D;E;F;G;;".split(";", -1).length);
//                                            ^^-negative limit

现在打印出来 9 .

6kkfgxo0

6kkfgxo02#

String#split() 只有在分隔符位于文本末尾时,才可能因为空值而返回错误的数字,例如。 ";;C;D;E;F;G;;" . 为了避免这种使用 text.split(regex, -1)

相关问题