[英]Check string for palindrome program
Im new to programming.我是编程新手。 I have to make a palindrome checker program for my class.
我必须为我的班级制作一个回文检查程序。 I'm having trouble iterating this program, it needs to keep asking the user to enter a phrase until they enter "done".
我在迭代这个程序时遇到了麻烦,它需要不断要求用户输入一个短语,直到他们输入“完成”。 Would a do loop be appropriate?
do 循环是否合适?
This is what my output should look like:这是我的输出应该是这样的:
Enter phrase: A man, a plan, a canal, Panama!输入短语:一个人,一个计划,一条运河,巴拿马! That is a Palindrome.
那是回文。
Enter phrase: Once upon a time That is NOT a Palindrome.输入短语:从前那不是回文。
Enter phrase: No 'x' in Nixon.输入短语:尼克松没有“x”。 That is a Palindrome.
那是回文。
Enter phrase: done输入短语:完成
and this is my work so far这是我迄今为止的工作
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();
}
}
You don't need to check if the "done" string is a palindrome or not so, I would recommend using while loop instead of do while.您不需要检查“完成”字符串是否是回文,我建议使用 while 循环而不是 do while。 Secondly, the condition should have a
not
ie !
其次,条件应该有一个
not
ie !
and Enter a phase:
should be a print statement and not println, as per your sample run.和
Enter a phase:
应该是一个打印语句而不是 println,根据您的示例运行。 Your code would look like this:您的代码如下所示:
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.