【Javaプログラミング】forループを使用して文字列を逆から表示-プロショvol.96

スポンサーリンク
Java攻略

今回は前回学習したcharAt()を使用したコードで文字列を逆から表示させるプログラムを作成する。

逆から呼んでも同じ文になる「回文」を使って、プログラムがきちんと組めているかチェックすることもできる。

回文とは「しんぶんし」みたいに逆から呼んでも同じ言葉や文のこと。

 

スポンサーリンク

プログラムを作成する際に必要な知識

 

 

基本的には上に挙げたものを使用する。

場合によってはスキャナーを使用して、ユーザーが好きな言葉を反対にすることもできる。

 

文字列を逆から表示するコード

 

1つの例として以下のコードを作成してみた。

public class reverseString {

public static void main(String[] args) {

String a = “Hello!”;
String c=””;

for(int b=a.length();b>0;–b) {
c = c+a.charAt(b-1);
}

System.out.println(c);

}

}

以上を実行すると以下の結果が得られる。

!olleH

 

プログラムの進行順

以下にプログラムを実行した際の順序を追っていく。

まずはforループが行われる前の段階。

  1. まず任意の文字を設定。今回は「Hello!」とした。
  2. 後に使用する変数「c」を用意。変数cは空っぽにしておきたいため、「”」の間には文字を入れない。
  3. forループを使用。
  4. forループの初期値は「int b=a.length()」。これは、変数aの文字数が初期値ということ。
  5. ループされる条件は「b>0」。条件に当てはまっていればforの{}内が処理される。
  6. ループの最後には「–b」が処理される。これは「b=b-1」の短縮形。

 

次にforループ内の処理

  1. 「a.length()」によって変数aの文字数を取得。「Hello!」は6文字のため、「int b=6」ということ。
  2. 「b=6」はループ条件の「b>0」に当てはまる。よってforの{}内が処理される。
  3. 左の変数cには、変数cとa.charAt(b-1)を合わせたものが代入される。
    ⇒最初に「String c=””;」と設定したのは、最初のループではcには何も入っていないから。
    「a.charAt(b-1)」に「b=6」を入れると、「a.charAt(5)」になる。
    よって5という番号に入った文字が出力される。

    文字の番号は先頭から順番に振られていく。

    その際の番号は「0」から始まるため、「a.charAt(5)」というのは6文字目を指す(0,1,2,3,4,5)。

     

  4. 5に入っている文字は「!」のため、cには「!」が入る。
  5. ループ処理の最後には「–b」が行われ、「b=5」となってforループ処理が繰り返される。

c = c+a.charAt(b-1);の部分では、「!+o」、「!o+l」、「!ol+l」・・・とループするたびに前の結果に新しく取得した1文字が足されていく。

よって最終的に「!olleH」が表示される。

 

最後に

 

今回はforループを使用して文字列を逆から表示する方法について扱った。

スキャナーを使用して表示させる方法もあるが、それについてはまた後日まとめることに。

このエントリーをはてなブックマークに追加

コメント

タイトルとURLをコピーしました