在我的回文功能中输入一个空字符串

时间:2019-01-30 21:08:56

标签: 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;
    }
}

1 个答案:

答案 0 :(得分:5)

您可以轻松地做到这一点:

  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;
  }