は、私がそれを実行するときにpalindromテスター(単語が同じスペルの順方向と逆方向である場合)がクラッシュし続けるので、単語以外の文字を削除して小文字にしたい。誰も問題を見つけることができますか?またはいくつかのヒントを与える?どんな "試し" "のための"などを使用することを避けようとしています。ここに私の出力は次のようになります。Javaプログラムがクラッシュし続ける
は、可能な回文を入力します。 p.oop はここにある:範囲外の文字列インデックス:java.langでの4 スレッド「メイン」java.lang.StringIndexOutOfBoundsExceptionで 例外をうんち。 Driver.mainでString.charAt(不明なソース) (Driver.java:27)
import java.util.*;
public class Driver
{
public static void main(String[] args)
{
String str, another = "y";
int left, right;
Scanner scan = new Scanner(System.in);
while (another.equals("y"))
{
System.out.println("Enter a possible palindrome : ");
str = scan.nextLine();
String palindromToLowerCase = str.toLowerCase();
String finalPalindrom = palindromToLowerCase.replaceAll("\\W", "");
left = 0;
right = str.length() - 1;
System.out.println("here it is : " + finalPalindrom);
while (finalPalindrom.charAt(left) == finalPalindrom.charAt(right) && left < right)
{
str.toLowerCase();
left++;
right--;
}
System.out.println();
if (left < right)
{
System.out.println("that string is NOT a palindrom");
}
else
{
System.out.println("This string IS a palindrom");
}
}
}
}
クラッシュすることはどういう意味ですか?例外がスローされますか? – Logan
私exeptionがスロー: "メイン" java.lang.StringIndexOutOfBoundsExceptionスレッドで 例外:文字列のインデックス範囲外:4 \t java.lang.String.charAt(不明なソース)Driver.mainで \t(Driver.javaで:27) – Peder