为Java创建在输入/输出后不会关闭的循环回文程序
我目前在大学里参加了一门java课程,我的项目是创建一个回文程序,输入一个字符串并输出该字符串是否为回文,但这样做后程序无法关闭,因为我的教授希望我通过键盘输入多个字符串。以下是开始代码:为Java创建在输入/输出后不会关闭的循环回文程序,java,Java,我目前在大学里参加了一门java课程,我的项目是创建一个回文程序,输入一个字符串并输出该字符串是否为回文,但这样做后程序无法关闭,因为我的教授希望我通过键盘输入多个字符串。以下是开始代码: //CSCI 200程序2 导入java.util.*; 公共课程2 { // //方法:isPalindrome //前提条件:传入字符串 //post条件:如果字符串是回文,则返回true,否则返回false // 公共静态布尔值isAlindrome(字符串s) { //回文代码——这需要返回语句,但我
//CSCI 200程序2
导入java.util.*;
公共课程2
{
//
//方法:isPalindrome
//前提条件:传入字符串
//post条件:如果字符串是回文,则返回true,否则返回false
//
公共静态布尔值isAlindrome(字符串s)
{
//回文代码——这需要返回语句,但我不确定
//什么。
}
公共静态void main(字符串[]args)
{
扫描仪s=新的扫描仪(System.in);
System.out.println(“字符串:”);
String word=s.nextLine();
//
//继续读单词,直到单词QUIT被读入
//
而(!word.equals(“退出”))
{
//
//调用isAlindrome方法并将单词传递给它
//根据此方法返回的内容(true或false)输出消息
//
if(isPalindrome(word))
System.out.println(“字符串[“+word+”]是回文。”);
其他的
System.out.println(“字符串[“+word+”]不是回文。”);
word=s.nextLine();
}
}
}
在方法isPalindrome
下,它说它需要一个return语句,但我不确定它是什么,两天多来我一直在挠头尝试不同的代码和return语句。任何帮助都将不胜感激
我自己也做了一个回文程序,但我似乎无法让它重复,它只需要一个字符串(例如雷达),说它是回文,然后退出
谢谢。在此之前我上了一节课,检查回文单词,看看这是否有用
class reverse
{
private String tmp="";
private int i;
private boolean loop = true;
public void reverseMe(String msg)
{
if(msg.equals("xxx"))
{
loop = false;
}
else
{
i = msg.length()-1;
do
{
tmp += msg.charAt(i);
i--;
}while(i>=0);
if(tmp.equals(msg))
{
System.out.println("Palindrome");
//loop = true;
tmp = "";
}
else
{
System.out.println("Not a Palindrome!");
//loop = true;
tmp = "";
}
}
}
public boolean getLoop()
{
return loop;
}
}
您需要为
isAlindrome
方法添加实现,下面是相同方法的实现-
public static Boolean isPalindrome(String s) {
int leftCount = 0;
int rightCount = s.length() - 1;
int lenght = (s.length() - 1) / 2;
boolean isPalindrome = true;
while(leftCount < lenght ) {
if(s.charAt(leftCount++) != s.charAt(rightCount--)) {
isPalindrome = false;
break;
}
}
return isPalindrome;
}
public静态布尔值isAlindrome(字符串s){
int leftCount=0;
int rightCount=s.length()-1;
int lenght=(s.length()-1)/2;
布尔值isAlindrome=true;
while(leftCount
我建议,先学习Java基础教程,然后尝试解决逻辑问题,并尝试为
isPalindrome
方法实现您自己的逻辑,也许您的解决方案会比我的好。isPalindrome中的返回类型是布尔类型,用于指定给定的输入是否为回文
您可以从该程序获得参考:
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
公共级帕林罗马酒店{
私有静态字符串QUIT=“QUIT”;
公共静态void main(字符串[]args)引发IOException{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(System.in));
字符串数据=reader.readLine();
而(!QUIT.equalsIgnoreCase(数据)){
System.out.println(“输入:“+data+”Pallindrome:“+isAlindrome(数据));
data=reader.readLine();
}
}
公共静态布尔值isAlindrome(字符串s)
{
对于(inti=0;iisAlindrome
方法的返回类型是Boolean
,这就是为什么它需要Boolean
类型的返回语句true
或false
。因此,如果给定字符串的倒数等于其值,则返回true
否则返回false
。下面是工作代码段:
public class Program2{
public static Boolean isPalindrome(String string) {
if (null == string)
return false;
String reverse = new StringBuffer(string).reverse().toString();
if (string.equals(reverse))
return true;
return false;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("String: ");
String word = s.nextLine();
while (!word.equals("QUIT")) {
if (isPalindrome(word)) {
System.out.println("The string [" + word + "] IS a palindrome.");
} else {
System.out.println("The string [" + word + "] IS NOT a palindrome.");
}
System.out.println("String: ");
word = s.nextLine();
}
s.close();
}
}
输出:
String:
test
The string [test] IS NOT a palindrome.
String:
madam
The string [madam] IS a palindrome.
String:
QUIT
isAlindrome不应该返回布尔值而不是布尔值吗?这让我明白了很多,非常感谢!有没有办法忽略字符串中的空格来检查它是否是回文,例如:字符串“一罐金枪鱼的坚果”我的教授说我可以使用字符串方法,但是在我的书中找不到需要的方法。