String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔 はじめに 各自の「Java」フォルダの中に、「String」 フォルダを作ってください。 手順: 1. 「Tera Term」を起動 2. 「cd Java」と入力 3. 「mkdir String」と入力 4. 「cd String」と入力 1. 文字列の生成(1) Stringとは? →文字列を入れる型。 文字列は「” ”」で囲む。 intやbyteとは違い、大文字で始まる。 例)String a = "abc"; 1. 文字列の生成(2) 「Append.java」を実行してみましょう。 2. 文字列の比較(1) 数値の場合は「a == b」のように表記し比 較するが、文字列の場合はそうはいかな い。 そこで比較用のメソッド「equals()」を使う。 例)a.equals(b) 文字列aとbが等しいなら true 2. 文字列の比較(2) 「Equal.java」を実行してみましょう。 演習①(テキストの演習2) Equal.javaを(equalsを用いて)書き換え、 以下のような結果になるEqual2.javaを作 りなさい。 演習① 解答例 public class Equal2{ public static void main(String argv[]){ String s1 = "Takuma"; String s2 = "Akito"; String s3 = "Takuma"; String s4 = new String(s1); } } System.out.println(s1 + System.out.println(s1 + System.out.println(s1 + System.out.println(s1 + "==" "==" "==" "==" + + + + s2 s1 s3 s4 + + + + " " " " : : : : " " " " +(s1 == s2)); +(s1 == s1)); +(s1 == s3)); +s1.equals(s4)); 3. 文字列の操作(1) a,bをStringとしたとき、 a.length() 文字列aの長さを求める。 a.charAt(int i) 文字列aのi番目の文字を求める。 a.indexOf(String x) 文字列aの最初に文字xが現れる場所を求める。 a.substring(int i, int j) 文字列aのi番目からj番目までの部分文字列を求める。 3. 文字列の操作(2) 「情報メディア」という文字列があったとして、 これを「substring」で指定したときと 「indexOf」で指定したときとでは示している位 置が異なる。 a.substring(0, 4)・・・出力結果は「情報メデ」 → → → 6 5 → 4 3 → 2 → 1 → 0 │情│報│メ│デ│ィ│ア│ 4 ← 3 ← a.indexOf(デ)・・・出力結果は「3」 2 ← 1 ← ← ← 0 5 演習②(1)(テキストの演習3) 文字列 “259-1292神奈川県平塚市北金目 1117” について 1. 何文字あるか数えよ。 2. 3文字目を表示せよ。 3. 郵便番号だけを表示せよ。 4. 県名だけを表示せよ。 5. 県名だけを除いて表示せよ。 演習②(2) 演習② 解答例 public class Tokai{ public static void main(String argv[]){ String a = "259-1292神奈川県平塚市北金目1117"; } System.out.println(a); System.out.println("文字列の長さ:" + a.length() + "文字"); System.out.println("3文字目:" + a.charAt(2)); System.out.println("郵便番号:" + a.substring(0, 8)); System.out.println("県名:" + a.substring(8, 12)); System.out.println("県名以外:" + a.substring(0, 8) + a.substring(12, 22)); } 4. 文字列の走査(1) charAtを使うと文字列を一文字づつ分解 することが出来る。 例)s="abc"を s.charAt(0) + s.charAt(1) + s.charAt(2) と書くと“abc” が表示される。 4. 文字列の走査(2) 「Forward.java」を実行してみましょう。 演習③(テキストの演習4) Forwardを修正し、入力文字を逆順にする Reverse.javaを書きなさい。 演習③ 解答例 public class Reverse{ public static void main(String argv[]){ String s = argv[0]; int i; for(i = s.length()-1; i > -1; --i){ System.out.print(s.charAt(i)); } System.out.println(); } } 5. バイト配列 String sからbyteの配列b[]への変換 byte b[] = s.getBytes(); byteの配列から文字列への変換 String s = new String(b); 整数(int a)から文字列への変換 String s = new String(a); (もしくは, String s = "" + a;) 文字列から整数への変換 int a = Integer.parseInt(s); 6. 多次元配列 int x[][] = {{1, 2}, {3, 4}}; これは2行2列の行列を表現している。 x[0][0] = 1, x[0][1] = 2, x[1][0] = 3, x[1][1] = 4 のように初期化される。 x[0]は {1,2} という整数の配列であり、 x[1]は{3,4}の配列である。 宿題① テキストの宿題3 入力した単語を以下のように表示する 「Display.java」を作りなさい。 実行例) $ java Display kikn 出力結果例) kiknkiknkiknkiknkiknkikn kikn kiknkiknkiknkikn kikn kiknkikn kiknkikn kiknkikn kiknkiknkikn kiknkiknkikn kiknkiknkikn kiknkiknkikn kiknkikn kiknkikn kiknkikn kikn kiknkiknkiknkikn kikn kiknkiknkiknkiknkiknkikn 宿題②(オリジナル) 任意の文字列を入力し、そこに「moji」とい う文字列があった場合は「true」を表示し、 無かった場合は「false」を表示する 「Moji.java」を作りなさい。 実行例) $ java Moji abcdefgmojihij 出力結果例) true 宿題③(オリジナル) 下記の配列を小さい順に表示する 「Hairetsu.java」を作りなさい。 ただし、必ずfor文とif文を使うこと。 { 12, 67, 6, 29, 77, 41 } 実行例) $ java Hairetsu 出力結果例) 6 12 29 41 67 77
© Copyright 2024 ExpyDoc