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()の使い方 ― 文字列を「計算できる整数」に変換する
プログラミングをしていると、ユーザーが入力した数字や、ファイルから読み込んだ数字が、計算できない「文字(String型)」として扱われることがよくあります。たとえば、"100"という文字に 1 を足しても、そのままでは 101 にはなりません。計算機として正しく動作させるには、文字を整数(int型)に変換する必要があります。
そこで登場するのが toInt() です。これを使うと、小数点のないスッキリした数字(整数)に作り変えることができます。数学で使う「123」や「0」、マイナスの「-50」などがこれにあたります。
まずは、最もシンプルな書き方を見てみましょう:
fun main() {
// ダブルクォーテーションで囲まれた "123" はただの「文字」
val textNumber = "123"
// toInt() を使って「計算できる数字」に変換!
val realNumber = textNumber.toInt()
// 数字になったので、算数の計算ができるようになります
val result = realNumber + 10
println("計算結果: " + result)
}
実行結果:
計算結果: 133
このプログラムでは、最初はただの文字だった "123" を toInt() で数値データに変換しています。そのおかげで、後ろに続く + 10 という足し算が正しく行われ、結果として 133 が表示されました。
もし変換せずに "123" + 10 と書こうとすると、エラーになったり、文字がくっついて 12310 になってしまったりしますが、toInt() を一挟みするだけで、コンピュータはそれを「数」として認識してくれるようになります。初心者の方が最初につまずきやすい「文字と数字の違い」を解決する、魔法の呪文のような機能です。
3. toDouble()の使い方 ― 小数の文字列を変換する
プログラミングの世界では、整数のほかに「3.14」や「0.5」といった小数点を含む数値(double型)を頻繁に扱います。Webフォームから入力された金額や、センサーから取得した計測値などは、最初は「文字列」として扱われることが多いため、計算を行う前にtoDouble()を使って数値に変換する必要があります。
double型とは?
「2倍(double)の精度」を持つことから名付けられた、小数を扱うためのデータ形式です。非常に大きな数や、細かい小数点以下の数値を扱うのに適しています。
fun main() {
// 1. 文字列として小数を定義する
val priceText = "150.5"
// 2. toDouble()を使って数値(double型)に変換
val priceNumber = priceText.toDouble()
// 3. 数値になったので、算術演算(計算)ができるようになる
val total = priceNumber * 1.1 // 10%の税込み計算など
println("変換後の数値: " + priceNumber)
println("計算結果(税込み): " + total)
}
実行結果:
変換後の数値: 150.5
計算結果(税込み): 165.55
上記のサンプルでは、文字列の"150.5"をtoDouble()で変換したことで、* 1.1のような掛け算が可能になりました。もし変換せずに文字列のまま計算しようとすると、エラーが発生してプログラムは動きません。このように、「文字としての数字」を「計算できる数字」へ橋渡しするのが、このメソッドの重要な役割です。
注意点として、"abc"のような数値として読み取れない文字列を変換しようとするとエラーが発生するため、必ず「半角の数字と小数点」で構成された文字列に対して使うようにしましょう。
4. 変換できない文字列に注意しよう(エラーへの対策)
プログラミングを始めたばかりの人が必ずと言っていいほど直面するのが、「数値として読み取れないデータ」を変換しようとした時に発生するエラーです。例えば、ユーザーが入力した文字が"100"ではなく、うっかり"abc"や全角の"100"だった場合、プログラムはその内容を理解できずに処理を中断してしまいます。
実際に、エラーが発生する典型的な例を見てみましょう。ここではKotlinを使って、計算できない文字を無理やり数値に変えようとした時の挙動を確認します。
fun main() {
val text = "abc" // 数字ではない文字列
val number = text.toInt() // ここで「数値に変換して!」と指示
println(number)
}
このプログラムを実行すると、コンソールには以下のような赤い警告メッセージ(例外)が表示されます:
Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"
これはNumberFormatException(ナンバーフォーマットエクセプション)と呼ばれるエラーです。日本語に訳すと「数値の形式が正しくありません」という意味になります。コンピュータは非常に厳格なので、"123"のような純粋な半角数字以外は「これは数字ではない」と判断してエラーを投げてしまうのです。
開発の現場では、このようなエラーでアプリが強制終了しないように、入力された値が本当に数字かどうかを事前にチェックしたり、変換に失敗しても動くような「安全な書き方」をすることが非常に重要になります。エラーは決して悪いことではなく、「データの形式を見直してね」というコンピュータからの親切な合図だと捉えましょう。
5. 安全に数値を変換する方法:toIntOrNull()とtoDoubleOrNull()
プログラミングをしていると、「ユーザーが入力した文字」を数値に変えたい場面がよくあります。しかし、もしユーザーが数字ではなく「あいうえお」や「ABC」といった文字を入力してしまったらどうなるでしょうか?
通常の方法(toInt()など)で変換しようとすると、プログラムは「数値じゃないよ!」と怒って強制終了(クラッシュ)してしまいます。これを防ぐのが、Kotlinの便利な機能であるtoIntOrNull()やtoDoubleOrNull()です。
これらは、変換できない文字が来たときにエラーを出すのではなく、「変換に失敗しました」という意味の null(ヌル)を返してくれる優れものです。つまり、アプリが突然止まる心配がないため、初心者の方でも安心して使うことができます。
fun main() {
// ユーザーが間違えて文字を入力したと想定
val input = "こんにちは"
// 数値に変換しようとする(失敗してもエラーにならない!)
val number = input.toIntOrNull()
// numberの中身が「空(null)」かどうかで処理を分ける
if (number != null) {
println("変換に成功しました!数値は $number です。")
} else {
println("エラー:入力された『$input』は数字ではありません。正しい数字を入力してください。")
}
}
実行結果:
エラー:入力された『こんにちは』は数字ではありません。正しい数字を入力してください。
このように、toIntOrNull()(整数用)やtoDoubleOrNull()(小数用)を使うことで、「もし数字じゃなかったら別のメッセージを出す」といった親切なプログラムを作ることができます。予期せぬエラーを防ぐことは、使いやすいアプリ開発の第一歩です。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
6. どんなときに使うの?文字列から数値変換の活用シーン
プログラミングの世界では、画面から入力された数字はそのままでは計算に使えない「文字」として扱われます。例えば、Webフォームの年齢入力や、家計簿アプリの金額入力などがこれに当たります。
具体的にどのような場面で数値変換が必要になるのか、初心者の方にも分かりやすい3つの代表的なケースを見ていきましょう。
- ユーザー情報のバリデーション: ユーザーが入力した「25」という文字を数値に変換し、「20歳以上か?」といった年齢制限の判定を行います。
- ショッピングカートの計算: 「1200円」の商品価格から数字だけを取り出し、消費税を掛けたり合計金額を出したりする演算処理に必須です。
- 外部データの読み込み: ExcelやCSVファイルから読み込んだデータは多くの場合「文字列」です。これをグラフ化したり分析したりする際に数値化します。
実際に、Kotlinでよくある「入力された年齢を2倍にする」という例で考えてみましょう。
fun main() {
// 1. ユーザーから入力されたと想定される「文字」のデータ
val inputAge = "20"
// 2. このままでは計算できないので「数値(Int型)」に変換!
val ageNumber = inputAge.toInt()
// 3. 数値になったので、計算ができるようになります
val futureAge = ageNumber * 2
println("入力された年齢の2倍は $futureAge 歳です。")
}
このように、数値変換は「人間の言葉(文字)」を「コンピュータの計算用データ(数値)」へと橋渡しする、実務で最も頻繁に使われる大切なステップです。Kotlinなら、メソッドを一つ繋げるだけで直感的に変換が行えます。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験