java - 字符串索引错误

标签 java string

<分区>

嗨,我是 java 的新手,我似乎无法弄清楚我在这里遇到的问题:

public static boolean IsPalindrome( String inputString ) {
    String inputString1 = inputString, reverse = "";
    String inputString2 = inputString1.replaceAll("[^a-zA-Z0-9]", "");
    int length = inputString1.length(); 

    for (int i=length-1; i>=0; i--) {
        reverse = reverse + inputString2.charAt(i);
    }    
    return inputString.equals(reverse);
}

我得到的错误是这样的:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 14
at java.lang.String.charAt(String.java:658)
at MyStringUtils.IsPalindrome(MyStringUtils.java:44)

最佳答案

您在循环中使用了 inputString1 的长度,但对可能更短的 inputString2 执行操作。替换

int length = inputString1.length();

int length = inputString2.length(); 

关于java - 字符串索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852818/

相关文章:

python - 遍历数字的数字

java - 删除android中特殊字符之前的所有字符

Java inputStreamReader 字符集

java - 蓝牙通讯器

java - HttpServletResponse.resetBuffer() 不起作用

java - 从 Java JTextArea 读取

wpf - WPF中的字符串引用绑定(bind)

java - 在 Xamarin 中创建 Android 服务并从 Java native 客户端应用程序调用其方法

string - Swift:预期声明错误将 "Label"设置为字符串变量