2014-02-12 36 views
-1

我试图接收一个字符串,切断第一个字母,将它放在字符串的末尾,并将其与原始输入进行比较。对于某些词而言,它有效,而其他词则不适用。我不确定这是循环的问题还是什么?用于字符串输入和反转的循环

import java.util.*; 
    public class Palin{ 

     public static void main(String args[]) 
     { 
      String original,input; 
      Scanner sc=new Scanner(System.in); 

      System.out.println("Enter word and I will tell you if it has the property of a palindrome: "); 
      original = sc.nextLine(); 
      char firstLetter = original.charAt(0); 
      input = original.substring(1); 
      input = input + firstLetter; 
      StringBuilder input2=new StringBuilder(input).reverse(); 
      String s2=new String(input2); 

      do{ 

      if(original.equals(s2)) 
       System.out.println(original + " is a Palindrome"); 
      else 
       System.out.println(original + " is not a Palindrome"); 
       System.out.println("Enter another word. Or enter \"quit\" to end"); 
       original = sc.nextLine(); 
      } while (!(original.equalsIgnoreCase("quit"))); 

     } 

} 
+0

如果你看看右侧的相关问题,你会找到解决方案。当你写这个问题时,我认为这是一个建议的重复。 – NeplatnyUdaj

+0

您实际上在测试第一个字母后的单词是否是回文。你可以为此写一个测试。这会更简单。 –

+0

StringBuilder input2 = new StringBuilder(input).reverse();这个命令不会反转整个字符串? – mo1090

回答

0

我想我只是要清理引用和do-while的位置。谢谢您的帮助。!

输出

输入的字,我会告诉你,如果它有一个回文结构特性: 回文 回文不具有回文性质 输入一个字。或输入“退出”结束 凹凸不平 凹凸不平有一个回文属性 输入另一个词。或输入“quit”结束 香蕉 香蕉有回文产权 输入另一个词。或输入“退出”结束 梳妆台 梳妆台有一个回文楼属性 输入另一个词。或输入“退出”结束 退出

修改后的代码如下。

import java.util。*; 公共课佩林{

 public static void main(String args[]) 
     { 
      String original,input; 
      Scanner sc=new Scanner(System.in); 

      System.out.println("Enter word and I will tell you if it has the property of a  palindrome: "); 
      original = sc.nextLine(); 

     do{ 

      char firstLetter = original.charAt(0); 
      input = original.substring(1); 
      input = input + firstLetter; 

      StringBuilder input2=new StringBuilder(input).reverse(); 
      String s2=new String(input2); 



      if(original.equals(s2)) 
       System.out.println(original + " has a Palindrome property"); 
      else 
       System.out.println(original + " does not have a Palindrome property"); 
       System.out.println("Enter another word. Or enter \"quit\" to end"); 
       original = sc.nextLine(); 
      } while (!(original.equalsIgnoreCase("quit"))); 

     } 

} 
0

如果你想只检查字符串是回文与否,你可以尝试这样的:

System.out.println("Enter String"); 
    Scanner s = new Scanner(System.in); 
    String str = s.nextLine(); 
    StringBuilder sb = new StringBuilder(str); 
    String rev = sb.reverse().toString(); 
    System.out.println(rev); 
    if(str.equals(rev)){ 
     System.out.println("equal"); 
    }else{ 
     System.out.println("not equal"); 
    } 

字符串使用字符串API的大小写。