TopPage > 演習課題 > 演習1-5

演習1-5では,2つのプログラムファイルについて見ていきます.

文字列と数値の型変換

まず,下記のプログラムをダウンロードしてください.

fileNumStrTest.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([数値型の変数])のように記述する必要があります.

  • String Integer.toString([数値型の変数])''
    [数値型の変数]の値を文字列にして返します.

裏ワザ
空文字列との「結合」を利用すると,暗黙的な変換ができます.

int number = 50;
String str = "" + number;

文字列型から数値型への変換

文字列型から数値型への変換は,明示的に記述しなければなりません.

変換する数値がint型の場合は,以下のとおりです.

String strint = "1234";
int inum = Integer.parseInt(strint);
  • int Integer.parseInt([文字列])''
    [文字列]の値をint型にして返します.

変換する数値が実数の場合(Double型にする場合)は,以下のようになります.

String strfloat = "1234.56";
double fnum = Double.parseDouble(strfloat);
  • Double Double.parseDouble([文字列])''
    [文字列]の値をDouble型にして返します.

注意点
文字列型から数値型への変換は,どのような文字列でも変換できるとは限りません. 変換できない文字が含まれている場合,プログラムエラー(例外)が発生します.

練習

確認練習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)

まず,下記のプログラムをダウンロードしてください.

fileSplitTest.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]);
}
  • String[] String.split([文字列])''
    文字列を指定の文字([文字列])で分割し,配列にします.
    返り値が配列になることに注意してください.

上記の例ですと,data[0]に"GET",data[1]に"5",…が代入されます.
文字列を取り出す,という意味では演習1-4のsubstringと似ていますね.区別をしましょう.

また,配列の要素数は,配列型.lengthで取得することができます.

 

next.gif 次の演習(1-6)


添付ファイル: fileNumStrTest.java 1684件 [詳細] fileSplitTest.java 1507件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   一覧 単語検索 最終更新     最終更新のRSS
Last-modified: 2017-10-12 (木) 11:27:57 (2378d)