2011-03-02 66 views
1

你好,我试图做一个程序,检查一个单词的第一个字母,看它是否等于最后一个字母。我的java编译正常,但什么都没显示

public class isPalindrome 
{ 
    public static void main(String[] args) 
    { 
     // Create an array of strings to test. 
     String[] testStrings = { "Able was I ere I saw Elba", 
           "Rats live on no evil star", 
           "Four score and seven years ago", 
           "Barrack Obama", 
           "Now is the time for all good men", 
           "Desserts I stressed", 
           "Ask not what your country can do for you", 
           "Kayak", 
           "Vegeta", 
           "A Man, A Plan, a canal, Panama!"}; 

     for (int i = 0; i < testStrings.length; i++) 
     { 
     System.out.print("\"" + testStrings[i] + "\""); 
     if (Palindrome(stripString(testStrings[i]))) 
      System.out.println(" is a palindrome."); 
     else 
      System.out.println(" is not a palindrome."); 
     } 
    } 


    public static String stripString(String strip) 
    { 
     strip = strip.toUpperCase(); 
     String stripped= ""; 
     for (int i= 0; i< strip.length(); i++) 
     { 
      if (Character.isLetter(strip.charAt(i))) 

       stripped += strip.charAt(i); 
     } 
     return stripped; 
    } 


    public static boolean Palindrome(String str) 
    { 
     boolean status = false; 

     if (str.length() <= 1) 
     status = true; 
     else if (str.charAt(0) == str.charAt(str.length()-1))//Recursive Case 
     {  
     status = Palindrome (str.substring (1, str.length()-1)); 
     } 
     return status; 
    } 
} 
+3

真的什么都没有?至少从for循环的东西应该打印... – BoltClock 2011-03-02 08:05:04

+0

这看起来很好,我的程序终止?还是它在某个地方陷入了无限循环? – Argote 2011-03-02 08:06:56

+0

这就是我在想什么? – lonesarah 2011-03-02 08:07:06

回答

3

我的Java编译罚款,但不显示任何内容。

是它:

#~/temp$ javac isPalindrome.java 
#~/temp$ java isPalindrome 
"Able was I ere I saw Elba" is a palindrome. 
"Rats live on no evil star" is a palindrome. 
"Four score and seven years ago" is not a palindrome. 
"Barrack Obama" is not a palindrome. 
"Now is the time for all good men" is not a palindrome. 
"Desserts I stressed" is a palindrome. 
"Ask not what your country can do for you" is not a palindrome. 
"Kayak" is a palindrome. 
"Vegeta" is not a palindrome. 
"A Man, A Plan, a canal, Panama!" is a palindrome. 

难道你不编译它运行后呢?该命令编译它:

javac isPalindrome.java

,然后这一次运行它:

java isPalindrome

编辑:或者您可能需要:

java -cp . isPalindrome

...告诉Java看用于当前目录中的类。 (我不知道在我的大部分未定制的Java安装,但你曾经有,所以......)


题外话:这是什么问题做的,但是:在Java中,编码约定(您可以自由忽略)是类名以大写字母开头,方法名以小写字母开头。所以课程将是IsPalindrome(或PalindromeTester或其他),然后方法Palindrome将是isPalindrome或类似。如果你使用惯例,与其他人一起工作会更容易,因为你不会将他们与不寻常的事物命名混淆。 :-)

+0

我不明白你是如何得到这个? – lonesarah 2011-03-02 08:09:54

+0

@user:我在最后添加了一个注释 - 它可能是编译它,你不运行它吗? – 2011-03-02 08:11:36

+0

@user:他发布了他使用的命令。 – 2011-03-02 08:11:44

相关问题