11_クラスライブラリ

対象:試験頻出の String・Math・Integer・StringBuffer クラスのメソッドを整理します


■ 1. String クラス

試験問6では String のメソッドが頻出です。特に indexOf()length() は必ず覚えておきましょう。

String.length()メソッド なので () が必要です。配列の .length(フィールド)と混同しないようにしましょう。
メソッド説明使用例結果
length()文字数を返します"Java".length()4
indexOf(str)str が最初に現れる位置(0始まり)。なければ -1"ABCDEFG".indexOf("C")2
substring(n)n文字目以降を返します"Hello".substring(2)"llo"
substring(n,m)n文字目〜m-1文字目を返します"Hello".substring(1,3)"el"
equals(str)内容が同じか比較します"Java".equals("Java")true
charAt(n)n文字目の文字を返します"Java".charAt(0)'J'
toUpperCase()大文字に変換します"java".toUpperCase()"JAVA"
toLowerCase()小文字に変換します"JAVA".toLowerCase()"java"
String s = "ABCDEFG";

System.out.println(s.length());          // → 7
System.out.println(s.indexOf("C"));      // → 2(インデックスは0始まり)
System.out.println(s.indexOf("Z"));      // → -1(見つからない)
System.out.println(s.substring(3));      // → DEFG
System.out.println(s.substring(2, 5));   // → CDE(2〜4まで)
indexOf の戻り値:見つかれば0以上のインデックス、見つからなければ -1
試験問6では「存在しないバス停名が入力されたとき indexOf-1 を返す」というパターンが出ます。

■ 2. Math クラス

数学的な計算を行うクラスです。new は不要で、すべて Math.メソッド名() で呼べます。

メソッド/定数説明使用例結果
Math.PI円周率(定数)Math.PI3.141592...
Math.abs(x)絶対値Math.abs(-5)5
Math.max(a,b)大きい方の値Math.max(3, 7)7
Math.min(a,b)小さい方の値Math.min(3, 7)3
Math.pow(a,b)a の b 乗Math.pow(2, 10)1024.0
Math.sqrt(x)平方根Math.sqrt(16)4.0
Math.random()0.0〜1.0 未満のランダムな doubleMath.random()毎回変わる

■ 3. Integer クラス

int 型を扱うクラスです。文字列と int の変換に使います。試験問5・問6で頻出です。

メソッド説明使用例結果
Integer.parseInt(str)文字列を int に変換Integer.parseInt("42")42
Integer.toString(n)int を文字列に変換Integer.toString(42)"42"
Integer.MAX_VALUEint の最大値(定数)Integer.MAX_VALUE2147483647
// コマンドライン引数(String)を数値に変換する典型パターン
// args[0] は文字列なのでそのまま計算できない
int n = Integer.parseInt(args[0]);
System.out.println(n * 2);
試験問5・問6では Double.parseDouble(args[0]) のように文字列から数値への変換が頻出です。
Integer.parseIntDouble.parseDouble は必ず覚えておきましょう。

■ 4. StringBuffer / StringBuilder クラス

変更可能な文字列を扱うクラスです。03_データ型・変数 で学んだ内容の続きです。

試験では StringBuffer が出題されますが、StringBuilder とほぼ同じ API です。

メソッド説明使用例
append(str)末尾に追加sb.append("Hello")
insert(n, str)n文字目に挿入sb.insert(2, "XX")
delete(n, m)n〜m-1文字目を削除sb.delete(1, 3)
reverse()文字列を逆順にするsb.reverse()
toString()String に変換sb.toString()
length()文字数sb.length()

実習:クラスライブラリを使ってみる

11_Library フォルダに LibTest.java を作って実行しましょう。

public class LibTest {
    public static void main(String[] args) {

        // ① String のメソッド
        String s = "ABCDEFG";
        System.out.println("length  : " + s.length());
        System.out.println("indexOf C: " + s.indexOf("C"));
        System.out.println("indexOf Z: " + s.indexOf("Z"));
        System.out.println("substring(3): " + s.substring(3));
        System.out.println("substring(2,5): " + s.substring(2, 5));

        // ② Math のメソッド
        System.out.println("\nabs(-7)    : " + Math.abs(-7));
        System.out.println("max(3,9)   : " + Math.max(3, 9));
        System.out.printf ("PI * 5^2   : %.2f%n", Math.PI * Math.pow(5, 2));

        // ③ Integer の変換
        String numStr = "123";
        int n = Integer.parseInt(numStr);
        System.out.println("\n\"123\" → int → *2 = " + (n * 2));

        // ④ StringBuilder
        StringBuilder sb = new StringBuilder();
        sb.append("Java");
        sb.append(" is");
        sb.append(" fun");
        System.out.println("\nStringBuilder: " + sb.toString());
        sb.reverse();
        System.out.println("reverse      : " + sb.toString());
    }
}
length : 7 indexOf C: 2 indexOf Z: -1 substring(3): DEFG substring(2,5): CDE abs(-7) : 7 max(3,9) : 9 PI * 5^2 : 78.54 "123" → int → *2 = 246 StringBuilder: Java is fun reverse : nuf si avaJ

試験(問5・問6)との対応

よく問われること正しい答え
indexOf が見つからない場合-1 を返します
String.length()配列.lengthString は () あり(メソッド)、配列は () なし(フィールド)
文字列 → int の変換Integer.parseInt(str)
文字列 → double の変換Double.parseDouble(str)
indexOf の引数で文字列を渡すバス停名の検索パターン(第67回問6)
練習問題:次の出力を答えましょう(第67回 問6 類似)
String busStopName = "ABCDEFG";
String from = "C";
int f = busStopName.indexOf(from);
System.out.println(f);
2

"ABCDEFG" の中で "C" は インデックス 2(A=0, B=1, C=2)の位置にあります。

■ まとめ

クラス主な用途重要メソッド
String文字列操作length() indexOf() substring() equals()
Math数学計算abs() max() pow() sqrt() PI
Integerint ↔ String 変換parseInt() toString()
Doubledouble ↔ String 変換parseDouble()
StringBuilder可変文字列append() reverse() toString()