2014-11-09 64 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