対象:試験頻出の String・Math・Integer・StringBuffer クラスのメソッドを整理します
試験問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。indexOf が -1 を返す」というパターンが出ます。
数学的な計算を行うクラスです。new は不要で、すべて Math.メソッド名() で呼べます。
| メソッド/定数 | 説明 | 使用例 | 結果 |
|---|---|---|---|
Math.PI | 円周率(定数) | Math.PI | 3.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 未満のランダムな double | Math.random() | 毎回変わる |
int 型を扱うクラスです。文字列と int の変換に使います。試験問5・問6で頻出です。
| メソッド | 説明 | 使用例 | 結果 |
|---|---|---|---|
Integer.parseInt(str) | 文字列を int に変換 | Integer.parseInt("42") | 42 |
Integer.toString(n) | int を文字列に変換 | Integer.toString(42) | "42" |
Integer.MAX_VALUE | int の最大値(定数) | Integer.MAX_VALUE | 2147483647 |
// コマンドライン引数(String)を数値に変換する典型パターン // args[0] は文字列なのでそのまま計算できない int n = Integer.parseInt(args[0]); System.out.println(n * 2);
Double.parseDouble(args[0]) のように文字列から数値への変換が頻出です。Integer.parseInt と Double.parseDouble は必ず覚えておきましょう。
変更可能な文字列を扱うクラスです。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());
}
}
試験(問5・問6)との対応
| よく問われること | 正しい答え |
|---|---|
indexOf が見つからない場合 | -1 を返します |
String.length() と 配列.length | String は () あり(メソッド)、配列は () なし(フィールド) |
| 文字列 → int の変換 | Integer.parseInt(str) |
| 文字列 → double の変換 | Double.parseDouble(str) |
indexOf の引数で文字列を渡す | バス停名の検索パターン(第67回問6) |
String busStopName = "ABCDEFG"; String from = "C"; int f = busStopName.indexOf(from); System.out.println(f);
"ABCDEFG" の中で "C" は インデックス 2(A=0, B=1, C=2)の位置にあります。
| クラス | 主な用途 | 重要メソッド |
|---|---|---|
| String | 文字列操作 | length() indexOf() substring() equals() |
| Math | 数学計算 | abs() max() pow() sqrt() PI |
| Integer | int ↔ String 変換 | parseInt() toString() |
| Double | double ↔ String 変換 | parseDouble() |
| StringBuilder | 可変文字列 | append() reverse() toString() |