如何解决检查回文程序的字符串
我是编程新手。我必须为我的课程制作一个回文检查程序。我在迭代该程序时遇到麻烦,它需要不断要求用户输入短语,直到他们输入“完成”为止。做循环合适吗?
这是我的输出应如下所示:
输入短语:一个人,一个计划,一条运河,巴拿马!那是回文。
输入短语:从前不是回文。
输入短语:尼克松中没有'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();
}
}
解决方法
您不需要检查“ done”字符串是否是回文,我建议您使用while循环而不是do while。其次,根据您的示例运行,条件应具有not
,即!
和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();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。