【Java】文字列の数字を数値に変換
「"あいうえお"」などの文字列を持つStrign型の変数値を、int型の変数に代入することはできません。
なぜなら、int型は整数を扱うデータ型だからです。なので「"あいうえお"」などという文字列の代入なんて絶対できません。
しかし、以下のような数字の文字列を持つString型の変数値だけは、数値に変換でき、int型の変数に代入できます。
String str = "123";
1.String型の変数値(数字)をint型の変数に代入する
では実際に確認してみましょう。
「Lesson016.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson016{ public static void main(String args[]){ //変数宣言 int i = 0; String str = "123"; //int型変数「i」にString型変数「str」を代入 i = str; //変数iを出力 System.out.println(i); } }
そして以下のように「javac Lesson016.java」でコンパイルし、「java Lesson016」で実行してください。
Lesson016.java:6: エラー: 互換性のない型
i = str;
^
期待値: int
検出値: String
エラー1個
コンパイルエラー!?できないぞ!!!!なぜ?
確かにString型の変数「str」は「123」という数字を持っていますが、これはあくまでも文字データとしての「123」であって、数値データとしての「123」ではありません。
そのため、String型の「123」をint型に代入するには、それを数値データに変換する必要があります。
String型の数字は、パッとみ数値に見えますが、文字列(単なる数字の羅列)です。
2.文字列を数値に変換
String型の文字列(数字)を数値に変換するためには、上記のプログラムの6行目を以下にするだけです。
i = Integer.parseInt(str);
すなわち「Integer.parseInt( )」を用いるだけです。
では実際にやってみましょう。
「Lesson017.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。
public class Lesson017{ public static void main(String args[]){ //変数宣言 int i = 0; String str = "123"; //String型変数「str」を数値に変換して代入 i = Integer.parseInt(str); //変数iを出力 System.out.println(i); } }
そして以下のように「javac Lesson017.java」でコンパイルし、「java Lesson017」で実行してください。
C:\Users\ysk\Desktop\java>java Lesson017
123
確かに、文字列(String型)の数字が数値に変換され、int型の変数に代入されていることがわかります。
コメント
まだコメントはありません。