簡體   English   中英

檢查回文程序的字符串

[英]Check string for palindrome program

我是編程新手。 我必須為我的班級制作一個回文檢查程序。 我在迭代這個程序時遇到了麻煩,它需要不斷要求用戶輸入一個短語,直到他們輸入“完成”。 do 循環是否合適?

這是我的輸出應該是這樣的:

輸入短語:一個人,一個計划,一條運河,巴拿馬! 那是回文。

輸入短語:從前那不是回文。

輸入短語:尼克松沒有“x”。 那是回文。

輸入短語:完成

這是我迄今為止的工作

      import java.util.Scanner;
      class Palindrome2 {
      public static void main(String args[]) {
      
       
       
       Scanner in = new Scanner(System.in);
    
      String reverseString="";
      String inputString;
      
      System.out.println("Palindrome Checker");
      
          
      do {
        System.out.println("Enter a phrase: ");
        inputString = in.nextLine();
        inputString = inputString.replaceAll("[^A-Za-z]+", "").toLowerCase(); 
        
        char[] characters = inputString.toCharArray();
       
    
   
      for ( int i = characters.length - 1 ; i >= 0 ; i-- )
         reverseString = reverseString + inputString.charAt(i);
     
      if (inputString.equals(reverseString))
          System.out.println("That is a palindrome.");
       else
          System.out.println("That is not a palindrome.");
       
      } while (inputString.toLowerCase().equals("done"));
    
      
 
    in.close();
      
   }
}

您不需要檢查“完成”字符串是否是回文,我建議使用 while 循環而不是 do while。 其次,條件應該有一個not ie ! Enter a phase:應該是一個打印語句而不是 println,根據您的示例運行。 您的代碼如下所示:

import java.util.Scanner;
      class Palindrome2 {
      public static void main(String args[]) {
      
       
       
       Scanner in = new Scanner(System.in);
    
      String reverseString="";
      String inputString;
      
      System.out.println("Palindrome Checker");
      System.out.print("Enter a phrase: ");
      inputString = in.nextLine();
      inputString = inputString.replaceAll("[^A-Za-z]+", "").toLowerCase();
      
          
      while (!inputString.equals("done")){ 
        
        char[] characters = inputString.toCharArray(); 
    
   
      for ( int i = characters.length - 1 ; i >= 0 ; i-- )
         reverseString = reverseString + inputString.charAt(i);
     
      if (inputString.equals(reverseString))
          System.out.println("That is a palindrome.");
       else
          System.out.println("That is not a palindrome.");
      
      System.out.print("Enter a phrase: ");
      inputString = in.nextLine();
      inputString = inputString.replaceAll("[^A-Za-z]+", "").toLowerCase();
       
      }
    
      
 
    in.close();
      
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM