为Java创建在输入/输出后不会关闭的循环回文程序

为Java创建在输入/输出后不会关闭的循环回文程序,java,Java,我目前在大学里参加了一门java课程,我的项目是创建一个回文程序,输入一个字符串并输出该字符串是否为回文,但这样做后程序无法关闭,因为我的教授希望我通过键盘输入多个字符串。以下是开始代码: //CSCI 200程序2 导入java.util.*; 公共课程2 { // //方法:isPalindrome //前提条件:传入字符串 //post条件:如果字符串是回文,则返回true,否则返回false // 公共静态布尔值isAlindrome(字符串s) { //回文代码——这需要返回语句,但我

我目前在大学里参加了一门java课程,我的项目是创建一个回文程序,输入一个字符串并输出该字符串是否为回文,但这样做后程序无法关闭,因为我的教授希望我通过键盘输入多个字符串。以下是开始代码:

//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不应该返回布尔值而不是布尔值吗?这让我明白了很多,非常感谢!有没有办法忽略字符串中的空格来检查它是否是回文,例如:字符串“一罐金枪鱼的坚果”我的教授说我可以使用字符串方法,但是在我的书中找不到需要的方法。