1

宿題として、2 つのメソッドを作成します。1 つは public static int(int number) を使用した反転メソッドであり、もう 1 つは public static boolean isPalindrome(int number) を使用した回文メソッドです。私はこれに数時間取り組んできましたが、正直に困惑しています。宿題をやってくれと言っているわけではありません。ここからどこへ行くべきかを理解するのを手伝ってください。ありがとう。私の現在のコードは次のとおりです。

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

        System.out.println("Please enter an integer. ");
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        boolean Final = isPalindrome(number);
        System.out.println(Final);

    }

    public static int reverse(int number)
    { // missing return?
        int y;
        int n;
        for (n = 0; n <= number; n++)
        { // parameters
            y = number % 10; // remainder
            number = number / 10; // gets rid of last digit
            n = n * 10 + y; // sets reverse values

            return n; // returns reversed number
        }
    }

    public static boolean isPalindrome(int number)
    {
        int n = reverse(number); // call reverse method
        boolean result; // declare result
        if (n = number)
        { // incompatible types?
            result = true;
            System.out.println("The number " + number + " is a " + "Palindrome" + ".");
        }
        else if (n != number)
        {
            result = false;
            System.out.println("The number " + number + " is a Palindrome" + ".");
        }
        return result; // not initialized?
    }
}
4

6 に答える 6

3

あなたreturn n;forループの中にいます。中括弧をその上に移動するだけです。

また、forループを次のように変更しますwhile (number > 0) {

そして(n = number)に変更(n == number)

また、不要なの 2 番目のif条件を削除します。isPalindrome置くだけelse。これにより、コンパイラreturn result;は到達不能であると通知します...削除するだけです。

于 2012-11-05T04:47:34.273 に答える
1

逆論理の問題。

これを試して

 public static int reverse(int number)
        {  
            int result = 0;
            int remainder;
            while (number > 0)
            {
                remainder = number % 10;
                number = number / 10;
                result = result * 10 + remainder;
            }

            return result;
        }
于 2012-11-05T04:56:31.577 に答える
1

回文IMOの文字列を操作する方が簡単です。

ソース投稿: 文字列が回文かどうかをどのように判断しますか?

int someNumber = 12321;
String palindrome = someNumber+"";
boolean isPalindrome = palindrome.equals(new StringBuilder(palindrome).reverse().toString());

あなたのコードでは、次のようになります。

public static void main(String[] args)
{

    System.out.println("Please enter an integer. ");
    Scanner input = new Scanner(System.in);
    int number = input.nextInt();
    String palindrome = number+"";
    boolean result = palindrome.equals(new StringBuilder(palindrome).reverse().toString());
    System.out.println(result);

}
于 2012-11-05T05:14:04.347 に答える
1

/* メソッドとインターフェイスを使用した回文プログラム */

 import java.util.Scanner;

 interface Test    //  All methods inside interface are treated "Public"
    {                 //  and abstract in nature by default   
String getInput();
boolean IsPalindrome(String s);
void displayInput();
         }

  abstract class Sub_Test  implements Test
       {
   public String getInput()
   {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter a String ");
       String str = scan.nextLine();
       return str;
   }
   public boolean IsPalindrome(String s)
       { 
       int limit = s.length() - 1;
       char st1 [] = s.toCharArray();
   Inner:for( int i = 0,j = limit; i < j ; i++,j--)
       {
           if(st1[i] == st1[j])
               return true;
           else 
               break Inner;
       }
              return false;
   }
          public void displayInput()
            {
      String input = getInput();
      boolean word = IsPalindrome(input);
      if(word)
        System.out.println("Given String "+input+" is palindrome ");
      else
        System.out.println("Given String "+input+" is NOT palindrome ");
                }   // End of displayInput() method

             }  // End of Sub_test abstract class

    public class String_Session1 extends Sub_Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String_Session1 object = new String_Session1();
    object.displayInput();
}
          }  // End of String-Session1 Main class

/* 以下のように出力されます */

   Enter a String 
   Race CAR

   Given String Race CAR is palindrome
于 2013-09-22T16:55:32.477 に答える
0

If you are writing for Number palindrome. here's the tip:

boolean method

public static boolean ispalindrome(int number)
    {
        int num=reverse(number);
        boolean res;
        if (num == number){
            res=true;
        System.out.println("The Entered number "+number+ " is a palindrome");}
        else {
            res=false;
            System.out.println("The Entered number "+number+" is not a palindrome");}
        return res;
    }

in your main method ,

boolean Res=ispallindrome(number);  

can be used to check the condition.

于 2015-10-22T01:06:11.020 に答える