2016-08-27 5 views
1

文字列を浮動小数点数に解析できるかどうかを確認するにはどうすればよいですか? common-langNumberUtilsライブラリを試しましたが、間違った返品を受け取ることがあります。文字列が浮動小数点であるかどうかをチェックする方法

私の浮動小数点数はカンマセパレータを使用するかどうかは分かりませんが、

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); 
      } 
     }; 
    } 
} 
+0

失敗した場合、 'Float()'オブジェクトとcatch例外はどうなりますか? –

+3

'Float#parseFloat'で解析し、例外をキャッチします。このような簡単なタスクを思いつかないでください。 – Tom

+0

私は、 "ネイティブな" - ジャワのソリューションを望んでいます。 – pror21

答えて

1

を仕事をFloat#parseFloat(String)を使用しますが、コンマを置き換えることを忘れないでくださいします:

try { 
    float val = Float.parseFloat(string.replace(',', '.')); 
} catch (NumberFormatException e) { 
    // Executed iff the string couldn't be parsed. 
} 

this great answerに触発されている場合は、厄介な正規表現を好む場合は、対応するFloat#valueOf(String)をチェックアウトすることもできます。

0

文字列を解析して、floatすることができます。

strringのすべての文字は、何かが失敗した場合に例外をスローするコードを強制的にそれを解析しようとすることができ最良の方法(ロケールに依存している小数表現を含む)浮動小数点数

で有効な文字です...

Float#parseFloat()は、前に述べたように、この場合には..