演習1-5では,2つのプログラムファイルについて見ていきます. 文字列と数値の型変換 †まず,下記のプログラムをダウンロードしてください. NumStrTest.java ダウンロード/ソースコードファイルを見る 数値型から文字列型への変換 †数値型から文字列型に変換するには,暗黙的に変換される場合と,変換コードを明示的に記述する場合とがあります. 暗黙的に変換される場合 †文字列と数値を結合する場合などは,変換コードを記述しなくても変換されます. int numberten = 10; System.out.println("Number "+ numberten); ただし,数値同士を+記号で結合しようとしても,足し算と認識されてしまいます. System.out.println(3 + 9); // 39ではなく,足し算結果の12になる. 明示的に変換コードを記述する場合 †数値型を文字列型に変換する場合のコードは,次のとおりです. int numberten = 10; String str = Integer.toString(numberten); Integer.toString([数値型の変数])のように記述する必要があります.
裏ワザ int number = 50; String str = "" + number; 文字列型から数値型への変換 †文字列型から数値型への変換は,明示的に記述しなければなりません. 変換する数値がint型の場合は,以下のとおりです. String strint = "1234"; int inum = Integer.parseInt(strint);
変換する数値が実数の場合(Double型にする場合)は,以下のようになります. String strfloat = "1234.56"; double fnum = Double.parseDouble(strfloat);
注意点 練習 †確認練習1 †文字列型から数値型への変換で,わざと数値でない文字列を作り,エラーを発生させてみましょう. 例)strintの値に「文字」を追加する String strint = "1234abc"; すると,次のようなエラーが発生し,エラーが出た行でプログラムが停止してしまいます. Exception in thread "main" java.lang.NumberFormatException: For input string: "1234abc" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at NumStr.main(NumStr.java:18) 確認練習2 †エラーをキャッチする構文(try-catch文)を導入してみましょう. ソースコードを以下のように書き換えてください. System.out.println("int型の変換"); String strint = "1234"; // 数値でない文字列に変えて試してみてください. //エラーが出る可能性がある文 try { int inum = Integer.parseInt(strint); System.out.println(inum); //エラーが発生した時の処理 } catch (NumberFormatException ex) { System.out.println(strint + "は数値に変換できません!!"); } 文字列の分割(split) †まず,下記のプログラムをダウンロードしてください. SplitTest.java ダウンロード/ソースコードファイルを見る ネットワークプログラムなどでは,次のようなスペース文字やタブ文字,カンマで区切られたデータ(文字列)をやりとりすることがあります. GET 5 5 1 MOVE 4 5 0 これらのデータ集合から,個々のデータを配列で取得するには,split()関数を使うと便利です. String text = "GET 5 5 1"; // Splitを使って命令を分割する String[] data = text.split(" "); // 分割した個々の要素を1行ずつ表示する. for (int i=0; i<data.length; i++) { System.out.println(data[i]); }
上記の例ですと,data[0]に"GET",data[1]に"5",…が代入されます. また,配列の要素数は,配列型.lengthで取得することができます. |