ユーザーが入力した文字列が回文かどうかを識別するための CS クラスのコードを作成しました。コードが動作するようになりました。ただし、コードを実行するたびに、次のメッセージが表示されます。
"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:658)
at palindrome.Palindrome.main(Palindrome.java:14)"
length
と何か問題があると思いますが、i
何が原因かわかりません。私のコードは以下です。aabbaa
ユーザー入力文字列に使用しました。
package palindrome;
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
System.out.println ("Enter A String:");
Scanner input = new Scanner (System.in);
String s = input.nextLine();
int length = s.length();
int i = 0;
while (length>= 0) {
if (s.charAt(i) == s.charAt(length-1)) {
i++;
length--;
if (length == i) {
System.out.println ("Your string is a palindrome");
length = 0;
}
}
else {
System.out.println ("Your string is not a palindrome");
length = 0;
}
}
}
}