Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查字符串是否可解析为浮动_Java - Fatal编程技术网

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解决方案。为什么你认为这不是本机解决方案?我甚至不认为这是一个合适的解决方案