[Android] 数値と文字列の変換 (Java)

数値のInt型や文字列のString型を混在させて文字表示する、あるいは値が文字列で返ってきた場合に数値に変換したい場合があります。数値と文字列型の変換をJavaでどうするのか確認してみましょう。




数値型-文字列 変換

 

あくまでAndroidでのJavaとなります。Javaの最新機能をサポートしているとは限りません、注意点もありますが、基本的な変換は以下のようになります。

  • int型からString型に変換

    注)文字連結では使わなくてもいい
     
  • String型からInt型に変換

    注)文字列が数値に変換できる前提
     
  • double型からString型に変換

    注)指数表記になる場合はBigDecimalを使う
     
  • String型からdouble型に変換

     
  • int型とdouble型の変換

 

 

int -> String

 

String.valueOf() を使ってintからStringに変換します

Logcatでは

ただし、文字列と数値が混在する場合は

Logcatでは、

問題はないですが、warningが出るようになりました

1x1.trans - [Android] 数値と文字列の変換 (Java)

「+」演算子で結合するだけでいいようです。

 

String -> int

 

Integer.parseInt() を使ってString型からint型へ変換

Logcatでは

文字列から数値型へ変換して計算もできます

Integer.valueOf() を使うこともできます

ただし、これはwarningがでます。Integer.valueOf()は内部でInteger.parseInt()を使っているので Integer.parseInt()にした方がいいようです。

この変換においては注意点があります
Stringが数値に置き換えられない場合はエラーになりクラッシュします。

Stringが数値型として有効でないか不明であればtry catchでクラッシュしないようにします

 

double -> String

 

intと同じように、String.valueOf() を使ってdouble型に変換できます

 
doubleの場合では、小数点以下の桁数が多いと指数表記となることがあります。

BigDecimalを使うと指数表記を避けられます (Javaのライブラリを入れます)

 

String -> double

 

Stringからdoubleに変換するには Double.parseDouble() を使います

 

int <-> Double

 

例えばこのような場合はint型を(double)でキャストします

このケースではキャストがなくてもエラーにはなりません
 
double値は(int)でキャストします

ただ、この場合小数点以下の値が失われてしまいます

キャストをしない場合は

エラーになります
1x1.trans - [Android] 数値と文字列の変換 (Java)

 

 

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする