回文 - 如何让main方法调用布尔方法?

时间:2014-11-07 21:54:28

标签: java

我正在尝试获取用户输入并确定该单词是否是回文。主要方法应该是放置所有打印语句的地方。

package help;
import java.util.Scanner;

public class Help {
    public static Scanner user_input;

    public static void main(String[] args, Iterable<String> lines) {
        System.out.print("Enter a word: ");
        user_input=new Scanner(System.in);
    }

    public static boolean istPalindrom(char[] word) {
        int i1 = 0;
        int i2 = word.length - 1;
        while (i2 > i1) {
            if (word[i1] != word[i2]) {
                return false;
            }
            ++i1;
            --i2;
        }
        return true;
    }
}

我想要它说

if true then System.out.println(The word is a palindrome.)
else System.out.println(The word is not a palindrome.)

我不知道该怎么做。

4 个答案:

答案 0 :(得分:1)

将以下行添加到main中:

if (isPalindrome(user_input))
System.out.println ("The word is a palindrome.");

else
System.out.println("The word is not a palindrome.");

注意:尝试使缩进更好,以便使代码易于理解并用于视觉目的:)

答案 1 :(得分:0)

此解决方案可能有效:

public static void main(String[] args, Iterable<String> lines) {

    user_input = new Scanner(System.in);
    System.out.println("Enter a word: ");
    String word = user_input.nextLine();

    if(istPalindrome(word.toCharArray()){
        System.out.println("The word is a palindrome");

    }else{
        System.out.println("The word is not a palindrome");
    }

}

答案 2 :(得分:0)

一旦你修复了缩进,你的回文测试看起来很好,但是用英文命名奇怪。你有一个Scanner,所以你可以得到输入线。然后拨打toCharArray()上的String以获取char[]之类的

public static void main(String[] args) {
    System.out.print("Enter a word: ");
    Scanner input = new Scanner(System.in);
    while (input.hasNextLine()) {
        String line = input.nextLine();
        if (isPalindrome(line.toCharArray())) {
            System.out.printf("The word %s is a palindrome.%n", line);
        } else {
            System.out.printf("The word %s is not a palindrome.%n", line);
        }
    }

}

public static boolean isPalindrome(char[] word) {
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}

答案 3 :(得分:0)

如果您想使用它,那么回文的代码就像这样简单!

public static boolean isPalindrom(String word) {
    if(new StringBuilder(word).reverse().toString().equals(word)){
        System.out.println("The word is a palindrome.");
    } else {
        System.out.println("The word is not a palindrome.");    
    }
}