有人可以识别我的回文探测器有什么问题吗?

时间:2016-02-19 01:27:10

标签: java

String input;
int longestpali = 0;
String original, reverse = "";
Scanner sc = new Scanner(System.in);
input = sc.next();

for(int j = 0; j < input.length(); j = j + 1)

    for(int k = 0; k < input.length(); k = k + 1) {

        original = input.substring(j,k);

        int length = original.length();

        for (int i = length - 1; i >= 0; i--)
            reverse = reverse + original.charAt(i);

        if (original.equals(reverse))
            longestpali = original.length();
    }

System.out.println(longestpali);

它说original = input.substring(j,k);时出错 该代码假设在整个输入中搜索以找到最长的回文。

3 个答案:

答案 0 :(得分:0)

您可以使用“YOURSTRINGHERE.length”方法获取每个字符串的值,并获取字符串中的字符数。然后,您可以使用几个if循环将这些值相互比较,并以此方式执行。

答案 1 :(得分:0)

您的k需要从i开始,而不是从0开始,否则您最终会在开始之前结束.substring(1, 0);这会引发StringIndexOutOfBoundsException

答案 2 :(得分:0)

这应该是你的第一个内循环

for(int k = j + 1; k&lt; imput.length(); k = k + 1){ .. }