Java 创建回文的方法

Java 创建回文的方法,java,methods,palindrome,Java,Methods,Palindrome,所以我在编程方面很糟糕,我必须为大学课程做这件事,我无法理解其中的一些概念。这就是我要说的。我做错了什么?如何调用这些方法将内聚消息返回到main?check方法是从另一个站点借用来填补这个空白的,而我试图找出验证回文的stringbuffer方法。许多评论都是正在进行中的工作,尚未完成。如果这太糟糕了,让我知道,我会重新开始。多谢各位 import java.util.*; import java.lang.StringBuffer; public class palindrome {

所以我在编程方面很糟糕,我必须为大学课程做这件事,我无法理解其中的一些概念。这就是我要说的。我做错了什么?如何调用这些方法将内聚消息返回到main?check方法是从另一个站点借用来填补这个空白的,而我试图找出验证回文的stringbuffer方法。许多评论都是正在进行中的工作,尚未完成。如果这太糟糕了,让我知道,我会重新开始。多谢各位

import java.util.*;
import java.lang.StringBuffer;

public class palindrome {
    public static void main(String[] args) {

    }

    public static String retrieveInput(String number) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a 5 digit integer: ");
        number = input.toString();

        while (number.length() != 5) {
            System.out.println("ERROR!!!  Integer must be 5 digits. Please enter a 5 digit integer: ");
            System.out.print("Enter a 5 digit integer: ");
            number = input.toString();
        }
        if (number.matches("[0-9]+")) {

        } else {
            System.out.println("ERROR!!! Input must be numeric. Please enter a 5 digit integer: ");
            System.out.print("Enter a 5 digit integer: ");
            number = input.toString();
        }
        return number;
    } 

    // Change, TESTING ONLY!!!!!!!
    public static String check(String number) {
        String original = number;
        String reverse = "";

        int length = original.length();

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

        if (original.equals(reverse))
            System.out.println("Entered string is a palindrome.");
        else
            System.out.println("Entered string is not a palindrome.");

        return number;
        //StringBuffer Palindrome = new StringBuffer(number);
        //return number.equals(reverseString);
    }

    //StringBuffer original = new StringBuffer();
    //  StringBuffer reverse = original.reverse();  
    //  if (original != original.reverse()) {
    //  System.out.print("This is not a palindrome");
    //}
    //return number;

    public static String display(String number) {
        return number + " is a valid palindrome!";
    }
}

尝试此修改,只需稍作更改

import java.util.Scanner;

public class Palindrome { // Prefer beginning class name with a capital letter
                          // (Java naming convention)

    public static void main(String[] args) {

    }

    public static String retrieveInput(String number) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a 5 digit integer: ");
        number = input.nextLine(); // Replace this

        while (number.length() != 5) {
            System.out
                    .println("ERROR!!!  Integer must be 5 digits. Please enter a 5 digit integer: ");
            System.out.print("Enter a 5 digit integer: ");
            number = input.nextLine(); // Replace this
        }
        if (number.matches("[0-9]+")) {

        } else {
            System.out.println("ERROR!!! Input must be numeric. Please enter a 5 digit integer: ");
            System.out.print("Enter a 5 digit integer: ");
            number = input.nextLine(); // Replace this
        }

        input.close(); // Close your scanner after you are done using it.

        return number;
    }

    // Change, TESTING ONLY!!!!!!!
    public static String check(String number) {
        String original = number;
        String reverse = "";

        int length = original.length();

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

        if (original.equals(reverse))
            System.out.println("Entered string is a palindrome.");
        else
            System.out.println("Entered string is not a palindrome.");

        return number;
        // StringBuffer Palindrome = new StringBuffer(number);
        // return number.equals(reverseString);
    }

    // StringBuffer original = new StringBuffer();
    // StringBuffer reverse = original.reverse();
    // if (original != original.reverse()) {
    // System.out.print("This is not a palindrome");
    // }
    // return number;

    public static String display(String number) {
        return number + " is a valid palindrome!";
    }
}

从何处获取用户通过扫描仪对象输入的信息?我在这里看不到任何next或nextLine方法调用。@mehmetgüngör提到,您使用的输入不正确。使用input.nextLine而不是input.toString。非常感谢您的帮助。我能问一下两者的区别是什么吗?因为这段代码仍然不起作用,我建议您删除所有未更改的代码行并保留更改的代码行。同时描述一下你为什么要改变他们。我想人们已经解释了什么需要改变。我只是让他更容易了,我建议他应该在什么地方做出改变,不管怎样,他都在努力,所以他可以在这方面努力。这不是让事情变得更简单更简单吗?谢谢你的提示。正如我所说,我不知道我在做什么,我认为这将是一个漫长的过程。有人能解释一下方法是如何被调用的吗?我真的很想学习这一点,这样也许当我有时间的时候,我可以做得更好。干杯