Java 9のJShellで文字列が回文かどうかを確認する方法
JShellとは
JShellは、Java 9で初めて導入されたREPL(Read-Evaluate-Print-Loop)型の対話型ツールです。宣言・文・式を入力するとその場で評価され、結果が即座に表示されます。コマンドラインプロンプトから直接実行できるため、小さなコード断片の動作確認や学習に非常に便利なツールです。
回文(パリンドローム)とは
回文とは、文字列を逆順に並べ替えても元の文字列と同じになるもの、つまり前から読んでも後ろから読んでも同じになる単語や文字列のことを指します。例えば「LEVEL」や「RACECAR」などが代表的な例です。
JShellで回文を判定する手順
以下の例では、JShellを使って指定した文字列が回文かどうかを確認します。文字列を後ろから1文字ずつ取り出して逆順の文字列を作成し、元の文字列と比較するというシンプルなアプローチです。
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> String str="LEVEL";
str ==> "LEVEL"
jshell> String revstring="";
revstring ==> ""
jshell> {
...> for(int i=str.length()-1; i>=0; --i) {
...> revstring +=str.charAt(i);
...> }
...> System.out.println(revstring);
...> if(revstring.equalsIgnoreCase(str)){
...> System.out.println("String is Palindrome");
...> } else {
...> System.out.println("String is not Palindrome");
...> }
...> }
LEVEL
String is Palindrome
コードの解説
- 逆順の文字列を作成: forループで文字列の末尾(
str.length()-1)から先頭(0)に向かって1文字ずつcharAt()で取り出し、revstringに連結していきます。 - 大文字小文字を無視した比較:
equalsIgnoreCase()メソッドを使用することで、大文字・小文字の違いを気にせず元の文字列と比較できます。 - 結果の出力: 2つの文字列が一致すれば「String is Palindrome」、一致しなければ「String is not Palindrome」が出力されます。
このように、JShellを活用すればクラスファイルを作成することなく、対話形式で簡単にロジックを検証できます。回文判定以外にも、アルゴリズムの動作確認などにぜひ活用してみてください。
-
Pythonで文字列が回文かどうかを判定するプログラム
問題概要 文字列 s が与えられたとき、その文字列が回文(パリンドローム)であるかどうかを判定します。回文とは、前から読んでも後ろから読んでも同じになる文字列のことです。 たとえば、入力が s = racecar の場合、「racecar」を逆から読んでも「racecar」であるため、出力は True になります。 解法のアプローチ この問題は以下の手順で解くことができます。 文字列 s を反転したものを t とする t が s と一致する場合は True を返す そうでない場合は False を返す Pythonではスライス記法 [::-1] を使うことで、文字列を簡単に反転できます。
-
Pythonで文字列が回文(パリンドローム)かどうかを判定する方法
文字列が与えられたとき、その文字列が回文(パリンドローム)であるかどうかを判定するのが、本記事の目的です。 回文とは、「madam」「level」「しんぶんし」のように、前から読んでも後ろから読んでも同じになる文字列のことを指します。Pythonでは、スライス記法を使うことで、わずか数行のコードでこの判定を実装できます。 アルゴリズム Step1: 文字列を入力として受け取る。 Step2: スライスを使って文字列を逆順にし、元の文字列と比較する。 Step3: 判定結果を表示する。 ポイント解説:スライスによる文字列の反転 このプログラムの核心は [::-1] というスライス記法です。こ