我正在尝试计算一串数字中 0 的数量。不完全是字符 0,而是数字零。例如我想计算 0、0.0、0.000 等。数字将用空格分隔,例如:
1.0 5.0 1 5.4 12 0.1 14.2675 0.0 0.00005
在字符串中简单搜索 "0"
几乎可以完成这项工作(我必须首先在字符串中插入一个前导空格才能工作 - 以防第一个数字为零) 。但是,它不适用于 0.x
形式的数字,例如0.1
、0.02
等。我想我需要检查 0
并查看是否有小数点及其后的非零数字,但我不知道该怎么做。类似于:
"0*|(0\\.(?!\\[1-9\\]))"
有人知道我如何实现这一目标吗?最好使用正则表达式。或者如果更容易的话,我很乐意计算非零元素的数量。谢谢。
注意:我在 Java 中使用 split
来执行此操作(使用正则表达式拆分字符串,然后使用 .length()
进行计数)。
最佳答案
这个怎么样:
(?<=^|\s)[0.]+(?=\s|$)
说明:
(?<=^|\s) # Assert position after a space or the start of the string
[0.]+ # Match one or more zeroes/decimal points
(?=\s|$) # Assert position before a space or the end of the string
记住在 Java 字符串中使用双反斜杠。
关于java - 正则表达式有助于仅计算字符串中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948049/