文字をループ処理する
文字列内の各charを処理します。
「文字をループ処理する」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
String は char で構成される
String は文字の並びです。各文字はインデックスと呼ばれる位置にあり、インデックスは 0 から始まります。
"Java" では、インデックス 0 が 'J'、インデックス 1 が 'a' で、その後も同様です。ループを使うと、各 char を順番に処理できます。
String word = "Java";
// indexes: 0=J 1=a 2=v 3=acharAt で1文字を取得する
charAt(index) メソッドは、String の指定された位置にある char を返します。
インデックスの範囲は 0 から length() - 1 までです。この範囲外のインデックスを指定すると、エラーが発生します。
public class Main {
public static void main(String[] args) {
String word = "Java";
System.out.println(word.charAt(0));
System.out.println(word.charAt(3));
}
}String の長さを調べる
length() メソッドは、String に含まれる文字数を返します。
"Java" の場合は 4 を返します。インデックスは 0 から始まるため、最後の有効なインデックスは常に length() - 1 です。
public class Main {
public static void main(String[] args) {
String word = "Hello";
System.out.println(word.length());
}
}インデックスを使ってループする
典型的な for ループでは、インデックスを 0 から length() - 1 まで動かし、そのたびに charAt を呼び出します。
これにより位置と文字の両方を取得できるため、インデックスが重要な場合に便利です。
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = 0; i < word.length(); i++) {
System.out.println(word.charAt(i));
}
}
}拡張 for ループ
インデックスが不要な場合は、toCharArray() で String を char 配列に変換し、for-each ループを使います。
「単語内の各 char c に対して処理する」という形で、すっきり読めます。
public class Main {
public static void main(String[] args) {
String word = "Java";
for (char c : word.toCharArray()) {
System.out.println(c);
}
}
}1行に出力する
文字を同じ行に続けて出力するには、println ではなく System.out.print を使います。
文字を1つずつ使ってテキストを再構築したり変換したりする場合に便利です。
public class Main {
public static void main(String[] args) {
String word = "Java";
for (char c : word.toCharArray()) {
System.out.print(c);
}
System.out.println();
}
}各 char を変換する
ループの中で各 char を変更してから使うこともできます。ここでは、処理しながらすべての文字を大文字に変換しています。
元の String は変更できないため、新しい String を作成します。String は不変です。
public class Main {
public static void main(String[] args) {
String word = "java";
String result = "";
for (char c : word.toCharArray()) {
result += Character.toUpperCase(c);
}
System.out.println(result);
}
}逆方向にループする
String を反転するには、charAt を使い、最後のインデックスから 0 まで逆方向にループします。
i を length() - 1 で始め、0 に達するまで減らしてください。
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = word.length() - 1; i >= 0; i--) {
System.out.print(word.charAt(i));
}
System.out.println();
}
}境界に注意する
必ず i < word.length() の間ループし、i <= word.length() にはしないでください。
末尾を1つ超えると、無効なインデックスで charAt を呼び出すことになり、StringIndexOutOfBoundsException が発生します。
String word = "Hi";
// valid indexes: 0 and 1 only
// charAt(2) would crash文字を検索する
各 char を == で比較しながらループすると、対象の文字を見つけられます。ここでは、最初の 'a' のインデックスを報告します。
見つかったら break で早期にループを終了します。
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = 0; i < word.length(); i++) {
if (word.charAt(i) == 'a') {
System.out.println("Found at " + i);
break;
}
}
}
}String から読み取る
char をループで処理することは、検索、置換、検証の基礎です。
テキストを詳しく調べる必要があるときは、ループで各 char を順に確認するのが標準的な方法です。
for (char c : "ab".toCharArray()) {
System.out.println(c);
}クイックチェック
文字のループ処理についての理解度を確認しましょう。
まとめ
すべての char を処理するには、インデックスループで charAt(i) を使うか、for-each ループで toCharArray() を使います。
範囲内に収めるために i < length() の間ループし、String は不変なので新しい String を作成してください。このパターンはテキストの検索や変換に役立ちます。
AI チューターと学ぶ Java — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 104
- レッスン
- 374
よくある質問
「文字をループ処理する」レッスンは無料ですか?
はい。「文字をループ処理する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「文字をループ処理する」で何を学びますか?
文字列内の各charを処理します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「文字をループ処理する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- charプリミティブ
- 文字ヘルパーメソッド
- 文字をループ処理する
- 文字のカウントとフィルタリング