まず,下記のプログラムをダウンロードしてください.
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);
注意点
文字列型から数値型への変換は,どのような文字列でも変換できるとは限りません.
変換できない文字が含まれている場合,プログラムエラー(例外)が発生します.
文字列型から数値型への変換で,わざと数値でない文字列を作り,エラーを発生させてみましょう.
例)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)
エラーをキャッチする構文(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 + "は数値に変換できません!!"); }
まず,下記のプログラムをダウンロードしてください.
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]); }
配列の要素数は,配列型.lengthで取得することができます.