KotlinのtoInt・toDoubleの使い方をやさしく解説!文字列から数値に変換する方法
生徒
「Kotlinで、数字っぽい文字列を本物の数字にするにはどうしたらいいですか?」
先生
「とても良いところに気がつきましたね。Kotlinでは、toInt()やtoDouble()というメソッドを使って、文字列を整数や小数に変えることができますよ。」
生徒
「なるほど!それって難しいんですか?」
先生
「いえいえ、とても簡単です!具体的な使い方を見ていきましょう!」
1. Kotlinで文字列から数値に変換する基本
Kotlin(ことりん)では、文字列(String)に対して簡単に数値への変換ができます。数字が書かれた文字列を、プログラム上で本物の数字として扱いたいときに使います。
たとえば、"100"という文字列を数字として足し算したいときは、そのままだと計算できません。文字列のままだと、ただの記号の集まりだからです。そこで活躍するのが、toInt()やtoDouble()という変換メソッドです。
2. toInt()の使い方 ― 文字列を整数にする
toInt()は、文字列を整数(int型)に変えるときに使います。整数とは、小数点がない数字のことです。たとえば「123」や「0」や「-45」などです。
次のように書きます:
fun main() {
val text = "123"
val number = text.toInt()
println(number + 10)
}
実行結果:
133
この例では、"123"という文字列をtoInt()で整数に変えて、そこに10を足しています。
3. toDouble()の使い方 ― 小数の文字列を変換する
toDouble()は、文字列を小数(double型)に変えるときに使います。小数とは、「3.14」や「0.5」などのように、小数点がある数のことです。
fun main() {
val text = "3.14"
val number = text.toDouble()
println(number * 2)
}
実行結果:
6.28
このように、文字列"3.14"をtoDouble()で小数に変えて、計算に使うことができます。
4. 変換できない文字列に注意しよう
ここでひとつ注意点があります。もし"abc"のような、数字ではない文字をtoInt()やtoDouble()で変換しようとすると、プログラムが途中で止まってしまいます。
fun main() {
val text = "abc"
val number = text.toInt()
println(number)
}
実行すると、エラーが出ます:
Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"
このように、数字として読めない文字列を変換しようとするとNumberFormatException(ナンバーフォーマットエクセプション)というエラーが出ます。これは「数値の形式が間違っています」という意味のエラーです。
5. 安全に変換するには? toIntOrNull()とtoDoubleOrNull()
文字列が正しい数字かどうか分からないときは、toIntOrNull()やtoDoubleOrNull()を使うと便利です。これらは、変換できないときにエラーを出す代わりに、null(ヌル)を返してくれます。
つまり、失敗してもプログラムが止まらないのです。
fun main() {
val text = "abc"
val number = text.toIntOrNull()
if (number != null) {
println("変換できました: $number")
} else {
println("数値に変換できませんでした。")
}
}
実行結果:
数値に変換できませんでした。
toIntOrNull()やtoDoubleOrNull()を使えば、安全に文字列をチェックしてから変換できます。
6. どんなときに使うの?文字列から数値変換の活用シーン
たとえば、Webフォームやアプリの入力欄では、ユーザーが入力した値は最初は文字列として受け取ります。でも、「年齢」や「料金」などの数字として扱いたい場合は、数値に変換する必要があります。
次のようなシーンで使われます:
- ユーザーが入力した「年齢」を整数にして年齢制限チェック
- 「商品の価格」を文字列から小数にして合計金額を計算
- CSVファイルなどから読み込んだ文字列データを数値に変換
Kotlinでの数値変換は、現実のアプリ開発でとてもよく使う基本テクニックです。