【Kotlin】ボタンから取得した文字をString型を経てInt型に変化させる方法

kotlinでボタンから取得した文字を、文字列(String型)を経て数字(Int型)に変化させる方法は?
結論はとしてはbutton.text.toString().toInt()と書くって本当?
連続2回変換するというところがポイントって本当?
こんな疑問に答えます。

僕はWordPressのブログでは月2万PV、自作のiPhoneアプリを2つリリースしています。
そんな僕が解説していきます。

作業環境

Android Studio Version 2.3.3
Kotlin 1.1.5
Mac OS Sierra 10.12.6

KotlinでStringからIntへ変換する方法【.text.toString().toInt()】

文字列(String型)を数字(Int型)へ
button.text.toString().toInt()

数字(Int型)を文字列(String型)へ
orangeNumber.toInt().toString()

※一気にやらなくてもいいですが、今回の目的からすると一気に書いたほうがスマートで綺麗です

コード

import kotlinx.android.synthetic.main.activity_main.*
import android.view.View

fun greenButtonTapped(view: View) {
var applebutton = view as Button
var rednumber  = applebutton.text.toString().toInt()
}

コードの解説

ボタンから取得した文章を一度String型へ変換し、連続でInt型に変換しorangeNoという、自分で作った変数に代入しています

(1)前提として、android.viewなどはimportして使用しています
(2)ここでstory boardで設定したボタンからのボタンの名前を取得し、変数applebuttonへ代入
(3)変数applebuttonをString型に変換し、そのままInt型に変換し、rednumberとして定義します

※ボタンの名前取得に関してはまた別です。

KotlinでStringからIntへ変換する場面【計算と表示を区別】

計算と表示を区別するのに使用

筆者は特に電卓アプリを作った際に、計算の時に使用する数と、ディスプレイに見やすく表示させる数を、区別して変換させたいと思い、これを調べました。
String型、Int型などの、数字文字の種類の名前を宣言し、変更する場合はそれをきちんと書く必要があります。

数字と文字は混同できない文化

プログラミングでは、機械に命令を送るので、数字や文字に関してきちんと正確に伝えなければいけません
特に数字に関しては「1」「いち」「一」「one」などは混同できないですし、
歴史背景的に「小数」「桁数の大きすぎる数」も、区別されて命令する文化になっているようです。

ちなみにSwiftだと「型推論」の機能があり、型の変換を適当にやっていても、自動で判別してくれます
ここに関してはSwiftの方が10倍楽です

数字を文字列にする場合

数字を文字列にするのは、toString()

参考:Kotlin Android Extensions
https://kotlinlang.org/docs/tutorials/android-plugin.html

人気記事TweetDeckでおすすめの表示設定と使い方【Column(列)の並べ方】

-Android Studio, Kotlin
-, , , , , , ,