回文计划

时间:2014-01-30 17:50:19

标签: java palindrome

我正在尝试编写一个程序,它将输出Palindromes在输入字符串时会起作用的数量以及有多少。我不断遇到很多错误,我仍然试图了解Java中一些较难的主题!

这就是我一直以来所有的答案都非常感谢!

public static boolean Palindrome(String text) {
    int index;
    int palindrome;

    System.out.println("Please enter your text ");
    text = EasyIn.getString();
    for(index = 0; index < amount.length() / 2; index++) {
        if(text.charAt(index) != text.charAt(text.length() - index - 1)) {
            return false;
        }
    }
    System.out.println("The number of valid palindrome(s) is " + amount);
    amount = EasyIn.getString();
}

4 个答案:

答案 0 :(得分:4)

我认为问题出在amount.length(),您应该使用text.length(),因为您正在循环text的一半。算法工作正常。这是一个简化的例子:

public static boolean palindrome(String text)
{
    for (int index = 0; index < text.length() / 2; index++) {
        if (text.charAt(index) != text.charAt(text.length() - index - 1)) {
            return false;
        }
    }
    return true;
}

注意:

  • 您忘记添加return true语句,如果您不添加for语句可能return循环结束且未达到someMethodName语句,这将导致错误
  • 我建议您遵循Java命名约定。您的方法应该像SomeMethodName而不是text.length()一样调用。最后一个用于类名。

修改 正如@bobbel评论的那样,您可以通过将for分配给变量并在{{1}}中使用它来改进此代码。

答案 1 :(得分:0)

可以有两件事:

你使用的ammount变量或者它可能是一个字符串数组,你在其中维护字符串,如果是这种情况,你必须首先遍历字符串数组然后维护一个嵌套循环来检查其中的字符串是不是或不是

或第二种情况是您使用的变量不正确它可能是文本而不是ammount

答案 2 :(得分:0)

public static void main(String [] args){

    Scanner in = new Scanner(System.in);
    System.out.println("enter string to check for palidrome");
    String orginal = in.next();

    int start = 0;
    int middle = orginal.length()/2;
    int end = orginal.length() - 1;
    int i;

    for(i=start; i<=middle; i++) {
        if(orginal.charAt(start) == orginal.charAt(end)) {
            start++;
            end--;
        } else {
            break;
        }
    }

    if(i == middle+1) {
        System.out.println("palidrome");
    } else {
        System.out.println("not palidrome");
    }
} 

答案 3 :(得分:0)

这是检查回文数的最简单方法。

package testapi;

public class PalindromNumber {

    public static void checkPalindrom(Object number) {
        StringBuilder strNumber = new StringBuilder(number.toString());
        String reverseNumber = strNumber.reverse().toString();
        if (number.toString().equals(reverseNumber)) {
            System.out.println(number + " is palindrom number");
        } else {
            System.out.println(number + " is not palindrom number");
        }
    }

    public static void main(String[] args) {
        checkPalindrom(101);
        checkPalindrom(10.01);
        checkPalindrom("aanaa");
    }

}