Java 如何检查字符串是否可解析为浮动
如何检查字符串是否可以解析为浮点数? 我尝试了Java 如何检查字符串是否可解析为浮动,java,Java,如何检查字符串是否可以解析为浮点数? 我尝试了common langnumberrutils库,但有时返回错误 我不知道这是否重要,但我的浮点数使用逗号分隔符 public TableCell call(TableColumn param) { return new TableCell<Course, String>() { @Override public void updateItem(String item, boolean empty
common lang
numberrutils
库,但有时返回错误
我不知道这是否重要,但我的浮点数使用逗号分隔符
public TableCell call(TableColumn param) {
return new TableCell<Course, String>() {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (NumberUtils.isParsable(item)) {
if (NumberUtils.toFloat(item) >= 5) {
this.setTextFill(Color.GREEN);
} else if (NumberUtils.toFloat(item) < 5) {
this.setTextFill(Color.RED);
}
setText(item);
}
};
}
}
公共TableCell调用(TableColumn参数){
返回新的TableCell(){
@凌驾
public void updateItem(字符串项,布尔值为空){
super.updateItem(项,空);
if(可分配数量(项目)){
如果(项目)数量大于等于5){
这个.setTextFill(Color.GREEN);
}否则,如果(项目数量小于5){
这个.setTextFill(颜色为.RED);
}
setText(项目);
}
};
}
}
字符串可以被解析为浮动当且仅当
字符串中的所有字符都是浮点数中的有效字符(包括依赖于区域设置的十进制表示)
最好的方法是尝试解析它,如果出现故障,则强制代码抛出异常
Float#parseFloat()
将在这种情况下完成工作。如前所述,使用但不要忘记替换逗号:
try {
float val = Float.parseFloat(string.replace(',', '.'));
} catch (NumberFormatException e) {
// Executed iff the string couldn't be parsed.
}
受此启发,如果您喜欢讨厌的正则表达式,也可以查看相应的正则表达式。如果失败,那么
Float()
对象和捕获异常如何?只需使用Float#parseFloat
解析它们并捕获异常即可。不要过度考虑像这样的简单任务。我明白了,我希望有一个“本机”-java解决方案。为什么你认为这不是本机解决方案?我甚至不认为这是一个合适的解决方案