KotlinのtoInt・toDoubleの使い方をやさしく解説!文字列から数値に変換する方法
生徒
「Kotlinで、数字っぽい文字列を本物の数字にするにはどうしたらいいですか?」
先生
「とても良いところに気がつきましたね。Kotlinでは、toInt()やtoDouble()というメソッドを使って、文字列を整数や小数に変えることができますよ。」
生徒
「なるほど!それって難しいんですか?」
先生
「いえいえ、とても簡単です!具体的な使い方を見ていきましょう!」
1. Kotlinで文字列から数値に変換する基本
Kotlin(ことりん)では、データには「型(かた)」という種類があります。文字としての"100"(String型)と、計算ができる数字の100(Int型)は、見た目は似ていてもコンピュータにとっては別物です。
たとえば、ユーザーがアプリの入力フォームに「25」と打ち込んだとき、プログラムはそれをまず「文字」として受け取ります。この「文字」のままだと、足し算や引き算などの計算ができません。そこで、文字列を数値データに変換するという作業が必要になります。
初心者の方向けに、まずは簡単なイメージをコードで見てみましょう。
fun main() {
val textAge = "25" // これは「文字」
// 文字列を整数(Int)に変換!
val numAge = textAge.toInt()
// 数値になったので計算ができるようになります
println(numAge + 1) // 26 と表示される
}
このように、.toInt()(整数へ)や.toDouble()(小数へ)という命令(メソッド)を文字列の後ろにつけるだけで、簡単に「計算可能な数字」へと変えることができます。これがKotlinにおける数値変換の第一歩です。
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()で小数に変えて、計算に使うことができます。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
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での数値変換は、現実のアプリ開発でとてもよく使う基本テクニックです。