我需要在字符串变量上设置负值约束。例如: -
string zeroval = "0.0000"
String x = "";
if (x==null) || (x.equals(zeroval)) { // code which checks if string x has 0 or null value
x = "--" // replace it by --
}
同样我想添加另一段代码来检查String x是否包含任何负值(例如:"-0.025"
)并将其替换为 -
上面的String x不应包含null / zero / negative值
请帮忙
注意: - 为了添加负值,请将字符串转换为float,因为我无法使用模式匹配技术,例如: - x.equals(“ - ”)
答案 0 :(得分:6)
您的输入数据是否始终包含有效数字?如果是这样,你可以使用:
BigDecimal number = new BigDecimal(text);
if (number.compareTo(BigDecimal.ZERO) <= 0) {
text = "--";
}
这将验证它确实 是一个数字以及执行检查。此外:
BigDecimal
来避免二进制浮点表示中的奇怪(例如,非常小的正值被视为0)。不太可能是一个问题,但从根本上说你已经得到十进制数据,所以你不妨这样解析它。答案 1 :(得分:0)
使用包装类将其转换为Integer或double。
String number="12.3434"
if(Double.parseDouble(number)<0)
//do stuff here
答案 2 :(得分:0)
您可以检查字符串是否以“ - ”开头:
if (x==null) || (x.equals(zeroval) || x.startsWith("-")) {
x = "--";
}
通过使用字符串来表示数字数据,我不禁觉得你做了一些不明智的事情。
答案 3 :(得分:0)
您可以使用Double.parseDouble(String)
或Float.parseFloat (String)
。这些方法可以帮助您分别获得double
或float
。
在此之后,您可以轻松检查该值是否为负值。