回文程序调试

时间:2017-05-24 04:06:55

标签: java

问题已得到解决,但我需要帮助为其中一段代码创建方法。任何输入将不胜感激。我尝试使用void方法,但它没有用。我已经突出显示了我希望代码成为方法的地方。

import java.util.*;
 public class Finalpal {

public Finalpal() {
    // TODO Auto-generated constructor stub
}

public static void main(String[] args) 
{
Scanner scan = new Scanner(System.in);

    String word;
    int len, counter = 0;

    System.out.println("Enter your word");
    word = scan.next();

    word = word.toUpperCase();

    len = word.length();

    char array[] = new char[len];
    char reverse[] = new char[len];

    for (int i=0; i < len; i++)
    {
        array[i] = word.charAt(i);
    }
    for (int j=len-1; j>=0; j--)
    {
        array[counter] = word.charAt(j);
        counter++;

    }

    // This part needs to be a method
    for (int k = 0; k < len; k++)
    {
        if (array[k] != reverse[k])
        {
            System.out.println("Not a palindrome");
            break;
        }
        if ((array[k] == reverse[k]) && (k == len -1))
        {
            System.out.println("It is a palindrome");
        }
    }

}

}

3 个答案:

答案 0 :(得分:4)

您没有填写reverse数组

for (int j=len-1; j>=0; j--)
{
    reverse[counter] = word.charAt(j);
    counter++;

}

答案 1 :(得分:0)

您使用了数组[计数器]而不是反向[计数器]。你从来没有填充反向数组

答案 2 :(得分:0)

有一种方法可以在不创建反向字符串的情况下与原始字符串进行比较...

如果我知道字符串的长度,我可以创建一个循环,检查两端的字符是否相同并向内移动:

[a] [b] [c] [b] [a]

Loop 0: a = a
Loop 1: b = b
Loop 2: c = c
Result: Palindrome!

您需要的功能:

int len = String.length();
char c = String.charAt(int);