| 
package j1.lesson12;
 import java.io.*;
 
 /**
 * 課題1201 - 解答例.
 * @author arakawa
 * @version $Id: Palindrome_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
 public class Palindrome {
 
 /**
 * コンソールから入力された文字列が回文であるかどうか調べるプログラム。
 * 以下の擬似コードで表される。
 * <pre>
 * プログラム全体
 *     print "文字列を入力:"
 *     input = コンソール入力 (文字列)
 *     if input が回文
 *         print input "は回文です"
 *     else
 *         print input "は回文ではありません"
 * </pre>
 * @param args 無視される
 * @throws IOException 入力中に例外が発生した場合
 */
 // プログラム全体
 public static void main(String[] args) throws IOException {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
 
 // print "文字列を入力:"
 System.out.print("文字列を入力:");
 
 // input = コンソール入力 (文字列)
 String input = reader.readLine();
 
 // if input が回文
 if (isPalindrome(input)) {
 // print input "は回文です"
 System.out.println(input + "は回文です");
 }
 // else
 else {
 // print input "は回文ではありません"
 System.out.println(input + "は回文ではありません");
 }
 }
 
 /**
 * 指定された文字列が回文であるかどうか調べる。
 * 以下の擬似コードで表される。
 * <pre>
 * 回文かどうか調べる(string)
 *     for i を 0 から floor(stringの長さ / 2) まで
 *         if stringの先頭からi文字目 と stringの末尾からi文字目 が違う
 *             false を返す
 *     true を返す
 * </pre>
 * @param string 調べる文字列
 * @return 文字列が回文であれば <code>true</code>、そうでなければ <code>false</code>
 */
 // 回文かどうか調べる(string)
 public static boolean isPalindrome(String string) {
 int length = string.length();
 
 // for i を 0 から floor(stringの長さ / 2) まで
 for (int i = 0; i < length / 2; i++) {
 // if stringの先頭からi文字目 と stringの末尾からi文字目が違う
 if (string.charAt(i) != string.charAt(length - 1 - i)) {
 // false を返す
 return false;
 }
 }
 // true を返す
 return true;
 }
 }
 |