[英]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.