Floatな文字列をIntな文字列へ変換する
最初普通に文字列をfloatに直してから(int)でcastしてそれをまた文字列に変換すればいいと思ったら一つの要素が抜けててできませんでした。
というか調べたらどうやらJavaにはintやdoubleなどのC言語であるようなプリミティブ型に加えて、そのプリミティブ型を便利にするするためのラッパークラスがある。
intな変数をIntegerなラッパークラスとして扱えば文字に変換したり逆にプリミティブに戻りたりあんなことしたりこんなことしたりできるようになるわけだ。
対応はこんな感じ。
・byte → Byte
・short → Short
・int → Integer
・long → Long
・float → Float
・double → Double
・char → Character
・boolean → Boolean
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000005.html
Javaの勉強は1年以上前に研修でやったのだけれど全然記憶になかった(^q^)
String str = "12.3" if (str != null && !str.equals("")) { str = Integer.toString( (int)Float.parseFloat(str) ) ; // or // str = Integer.toString((int)(Float.valueOf(str).floatValue())); } else { str = "--"; }
上記のようにやりかたは二通りある。
文字列を一旦FloatクラスのparseFloatメソッドでfloat型になおしてからint型にキャストしてからIntegerクラスのtoStringメソッドを使って文字列に変換するパターン。
そしてもう一つが文字列を一旦FloatクラスのvalueOfメソッドでFloatクラスのオブジェクトに変換したものを同じくFloatクラスのfloatValueメソッドでfloat方に変換したものをint型にキャストしたものをIntegerクラスのtoStringメソッドで文字列に変換するパターン。
文字列がそのそのも数字じゃなかったりするとExceptionすると思うので例外処理もしないとね。