Java回文检查器

时间:2018-11-14 23:12:38

标签: java palindrome

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String word;
    String c;
    int x, count, count1;
    System.out.println("Please enter a word:");
    word=in.nextLine();
    x=word.length();
    count1=x;
    for(count=0;count<x;count++) {
        c=word.substring((count1)-1,count1);
        System.out.print(c);
        count1--;
    }`
}

大家好,我编写此代码后会向后打印一个单词,但现在我想知道如何将其转换为回文检查器,但我感到困惑,因为最终产品实际上是由一堆单词组成的字符串c放在一起,所以我不知道如何将其与输入的原始单词进行比较。帮助吗?

2 个答案:

答案 0 :(得分:0)

以方法签名和将从中返回的值开头:

private boolean isPalindrome(String word1, String word2) {
  boolean isPalindrome = true; // let's initiate it to true
  // ...
  return isPalindrome;
} 

然后,您可以使用已有的东西(我评论了不需要的部分:

x=word.length();
for(count=0;count<x;count++) {
    // c=word.substring((count1)-1,count1);
    // you can use word.charAt(count); instead
    // System.out.print(c);
    //count1--;
}`

在循环内,将word1.charAt(count)word2.charAt(count)进行比较,如果两者不匹配,请将isPalindrome更改为true。

您可能还想先检查两个字符串的长度是否相同。

答案 1 :(得分:0)

我发现有两种可能性可以在palindrom-checker中将其打开(我对您现有的代码进行了一点改动)

  1. 将字符串前半部分的字符与后半部分的字符进行比较,如下所示:

    boolean isPalindrom = true;
    
    for (int i= 0; i < (word.length()-1)/2; i++) {
        if(word.charAt(i) != word.charAt(word.length()-1-i))
        {
            isPalindrom = false;
        }
    }
    
    System.out.println(word + " is a palindrom: " + isPalindrom);
    

  1. 使用反向字符串,将其保存到另一个String变量中,然后检查其是否等于您的单词。 像这样:

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String word;
    
        System.out.println("Please enter a word:");
        word = in.nextLine();
    
        String reverseString = "";
    
        for (int i = 0; i < word.length(); i++) {
            reverseString = reverseString + word.charAt(word.length()-1-i);;
        }
    
        System.out.println("original: " + word + ", reversed: " + reverseString);
    
        boolean isPalindrom = word.equals(reverseString);
    
        System.out.println(word + " is a palindrom: " + isPalindrom);
    }
    

也许这对您也有帮助:Check string for palindrome