鼻間違ったでStringをFloatに変換する方法を紹介します。
String.toFloat()
String.toFloat()
は、文字列をFloatに変換して返します。
fun main(args: Array<String>){
val str: String = "1234.5678"
val num: Float = str.toFloat()
print("num : $num")
}
Output:
num : 1234.5678
NumberFormatException
toFloat()
は数字ではなく、文字列を変換するときにNumberFormatExceptionが発生します。
fun main(args: Array<String>){
val str: String = "1234.5678a"
val num: Float = str.toFloat()
}
Output:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1234.5678a"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:455)
次のように例外処理が必要です。
fun main(args: Array<String>){
val str: String = "1234.5678a"
try {
val num: Float = str.toFloat()
print("num : $num")
} catch (e: NumberFormatException) {
println("Not number: $str")
}
}
Output:
Not number: 1234.5678a
String.toFloatOrNull()
String.toFloatOrNull()
は、文字列をFloatに変換して返します。もし文字列が数字ではないときはnullを返します。
toFloatOrNull()
を使用すると、NumberFormatExceptionの例外処理が必要ありません。代わりにNullableしたオブジェクトにFloatを割り当てる必要があります。
fun main(args: Array<String>){
val str: String = "1234.5678a"
val num: Float? = str.toFloatOrNull()
print("num : $num")
}
Output:
num: null
Related Posts
- Kotlin - エルビス演算子(Elvis Operation)
- Kotlin - Timer、定期的に関数を実行する
- Kotlinで正規表現を使用する
- Kotlin - 文字列の比較方法(equals、==、compareTo)
- Kotlin - 2つのList一つの併合
- Kotlin - ディレクトリのすべてのファイルのリスト出力
- Kotlin - リストの並べ替え方法(sort、sortBy、sortWith)
- Kotlin - 乱数生成(Random、SecureRandom)
- Kotlin - StringをFloatに変換
- Kotlin - Destructuring Declaration
- Kotlin - objectとclassキーワードの違い
- Kotlin - 現在の日付と時刻を取得する方法