2014-11-09 70 views
0

所以我在編程方面很糟糕,我必須爲大學課程做到這一點,並且無法理解我的一些概念。這就是我對此的看法。我究竟做錯了什麼?我如何調用這些方法來將一致的消息返回給main?檢查方法是從另一個網站借來填補空白,同時我試圖找出驗證迴文的字符串緩衝區方法。很多評論都在進行中,尚未完成。如果這太搞砸了,讓我知道,我會重新開始。謝謝。創建迴文的方法

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!"; 
    } 
} 
+2

你從哪裏獲得由'Scanner'對象的用戶輸入?我在這裏看不到任何'next()'或'nextLine()'方法調用。 – 2014-11-09 00:57:07

+0

正如@MehmetSedatGüngör所提到的,您正在使用'input'輸入錯誤。使用'input.nextLine()'而不是'input.toString()'。 – Tom 2014-11-09 01:00:57

+0

我很感激幫助。我可以問一下,我看到兩者有什麼不同? – randomhero125 2014-11-09 02:27:05

回答

0

試一下這個(修改用微小的變化)

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!"; 
    } 
} 
+0

由於此代碼仍然無效,因此我建議您刪除所有未更改的代碼行並保留更改後的代碼。還要說明你爲什麼改變它們。 – Tom 2014-11-09 01:26:56

+0

我想人們已經解釋了需要改變的地方。我只是通過暗示變化必須發生的地方以及無論他在做什麼來讓他更容易,所以他可以在這方面努力。它不是讓事情變得更簡單和簡單嗎? – d3atfury 2014-11-09 01:29:47

+0

謝謝你的提示。正如我所說我不知道​​我在做什麼,這將是一個漫長的過程,我認爲。任何人都可以解釋如何調用方法?我真的很想學習這個,所以也許當我有時間的時候我可以做得更好。乾杯! – randomhero125 2014-11-09 02:29:54