java - 在我的回文函数中输入一个空字符串

标签 java palindrome

它不会输出错误的语句。不确定为什么它不会输出正确的答案。

测试时,请确保您的算法在以下情况下有效:

当给定一个回文词时,算法返回“true” 当给定一个不是回文的单词时,算法返回“false” 当给定一个空字符串的单词时,算法不会崩溃。

 public class Palindrome {
     public static void main(String[] args) {
         String input = "";// Set to test value
         char[] phrase = input.toCharArray();
         System.out.println(isPalindrome(phrase));
    }

 public static boolean isPalindrome(char[] input) {
    if (input == null)
        return false;

    int length = input.length;
    int c = 0;


    while(c <= length/2) {
        if(input[c] != input[length - 1 - c])
            return false;
        c++;
        }
    return true;
    }
}

最佳答案

你可以用简单的方法做到这一点:

  public static void main(String args[]) {
    System.out.println(isPalindrome("redivider"));
    System.out.println(isPalindrome("normal"));
  }

  public static boolean isPalindrome(String check) {
    return new StringBuilder(check).reverse().toString().equalsIgnoreCase(check);
  }

或者只添加“|| input.length == 0”

  public static boolean isPalindrome(char[] input) {
    if (input == null || input.length == 0) return false;

    int length = input.length;
    int c = 0;

    while (c <= length / 2) {
      if (input[c] != input[length - 1 - c]) return false;
      c++;
    }
    return true;
  }

关于java - 在我的回文函数中输入一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54449568/

相关文章:

java - 调试回文数代码中的 for 循环

c - 为什么我的回文函数不起作用?

java - 为什么这个逻辑对于整数回文是错误的

java - 检查数组中的字符以构建回文列表

java - 如何在 Cassandra 中使用 datastax java 驱动程序有效地使用准备好的语句?

java - 使用 JPA 返回两个结果集

java - 如何根据数据库在特定日期更新按钮(房间)?

python - 为什么列表理解生成的列表是空的

java - 是否可以重写 Random 类的 Java 实现?

java - 安卓工作室 : lots of errors when I run my app