Java程序不断崩溃
当我运行它时,它一直崩溃,这是一个回文测试程序(如果一个单词前后拼写相同),我希望它删除任何非单词字符并变成小写。有人能发现问题吗?或者给点建议?我尽量避免使用任何“try”“for”之类的东西。。项目的while和if语句。以下是我的输出:
输入可能的回文: p、 哎呀 给你:大便 线程“main”java中出现异常。lang.StringIndexOutOfBoundsException:字符串索引超出范围:4 在爪哇。lang.String。字符(未知源) 在司机那儿。main(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");
}
}
}
}
# 1 楼答案
更改:
致: