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;
}
}
|