我有一个非常简单的问题是我有一个字符串 0-1000
说 str = "0-1000"
我使用 str.split("-")
成功提取了 0 和 1000
现在,我被分配去检查这个数字,因为我注意到这两个数字可能是负数。
如果我继续 str.split("-")
,那么我也会跳过负号。
谁能给我推荐方法?
最佳答案
自 String.split()
使用正则表达式拆分,你可以这样做:
String[] nos = "-1000--1".split("(?<=\\d)-";
这意味着您在数字后面的减号字符处拆分,即必须是运算符。
请注意正向后视 (?<=\d)
需要使用,因为您只想匹配减号字符。 String.split()
删除所有匹配的分隔符,因此类似于 \d-
也会删除数字。
要解析数字,您需要遍历数组元素并调用 Integer.valueOf(element)
或 Integer.parseInt(element)
.
请注意,这假设输入字符串是有效的。根据您想要实现的目标,您可能首先必须检查输入是否匹配,例如通过使用 -?\d--?\d
检查字符串的格式是否为 x-y
其中 x
和 y
可以是正整数或负整数。
关于java - 提取字符串java中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916841/