Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】
回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。
この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。
回文数をチェックする方法
数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。
サンプルコード
public class Palindrome {
public static void main(String[] args) {
int a = 525, revVal = 0, remainder, val;
val = a;
System.out.println("チェック対象の数値 = " + a);
while (a != 0) {
remainder = a % 10; // 末尾の桁を取り出す
revVal = revVal * 10 + remainder; // 反転用の値に追加
a /= 10; // 桁を一つ削る
}
if (val == revVal)
System.out.println("Palindrome!(回文です)");
else
System.out.println("Not a palindrome!(回文ではありません)");
}
}実行結果
チェック対象の数値 = 525 Palindrome!(回文です)
525 を反転しても 525 のままなので、この数値は回文であると判定されました。
回文文字列をチェックする方法
文字列の場合は、さらに簡単です。StringBuffer クラスの reverse() メソッドを使えば、文字列を一発で反転できます。あとは equals() メソッドで元の文字列と比較するだけです。
サンプルコード
public class Demo {
public static void main(String[] args) {
String str = "ABA";
String strRev = new StringBuffer(str).reverse().toString();
if (str.equals(strRev))
System.out.println("Palindrome!(回文です)");
else
System.out.println("Not a Palindrome!(回文ではありません)");
}
}実行結果
Palindrome!(回文です)
「ABA」を反転しても「ABA」のままなので、回文として判定されます。
まとめ
- 数値の回文判定: 剰余演算と除算を繰り返して桁を反転し、元の値と比較する。
- 文字列の回文判定:
StringBuffer.reverse()で反転し、equals()で比較する。
どちらの方法も処理がシンプルで、初心者の方でもすぐに試せる内容です。ぜひ実際にコードを動かして、さまざまな数値や文字列で回文判定を試してみてください。
-
C言語で配列が回文かどうかを判定するプログラム
回文とは任意のサイズ n の配列 arr[] が与えられたとき、その配列が回文(パリンドローム)かどうかを判定するのが本記事の目的です。回文とは、前から読んでも後ろから読んでも同じになる並びのことで、MADAM や NAMAN といった文字列が代表的な例として挙げられます。配列が回文かどうかを確認するには、配列を先頭からと末尾から同時に走査し、対応する要素同士を比較していきます。入力例と出力例Input: arr[] = {1, 0, 0, 1} Output: 配列は回文です Input: arr[] = {1, 2, 3, 4, 5} Output: 配列は回文ではありません考え方(アプ
-
Pythonで文字列が回文(パリンドローム)かどうかを判定する方法
文字列が与えられたとき、その文字列が回文(パリンドローム)であるかどうかを判定するのが、本記事の目的です。 回文とは、「madam」「level」「しんぶんし」のように、前から読んでも後ろから読んでも同じになる文字列のことを指します。Pythonでは、スライス記法を使うことで、わずか数行のコードでこの判定を実装できます。 アルゴリズム Step1: 文字列を入力として受け取る。 Step2: スライスを使って文字列を逆順にし、元の文字列と比較する。 Step3: 判定結果を表示する。 ポイント解説:スライスによる文字列の反転 このプログラムの核心は [::-1] というスライス記法です。こ