文字列がJavaの有効な浮動小数点数であり、Regexを使用したくないことを確認しようとしています。私の中央に来る最初のものはFloat.parseFloat(String)
に相当するFloat.valueOf(String)
を使用するかどちらかです。 これらの関数はNumberFormatException
を投げません。有効な文字でjavaの浮動小数点数を解析する
これはjavaで有効な値である可能性があることを理解しています。しかし、私が他の環境や言語とコミュニケートしたいとき、これらは有効ではありません!
System.out.println(Float.parseFloat("4.f"));
System.out.println(Float.parseFloat("2.d"));
System.out.println(Float.parseFloat("0.45d"));
System.out.println(Float.parseFloat("0.3f"));
System.out.println(Float.parseFloat("0d"));
System.out.println(Float.parseFloat("0d"));
結果:
4.0
2.0
0.45
0.3
0.0
0.0
私は、私は自分のパーサを書くことができます知っている、この先行投資をキャッチする任意のエレガントな方法がありますが、それは性能に影響を与えるループです。何かご意見は?
事前のおかげで...
をホードが行われ、その後、「有効」が「有効」のあなたの定義は、その後、何のバックフロート – holtc
に変換するとして、あなたが文字列に変換することができJavaの値はアプリケーションでは有効ではありませんか? –
値が他の言語で無効な場合は、Javaでエラーが発生するのはなぜですか?唯一の方法は、解析する前に文字列内の文字をチェックすることです。 –