java - 在我的回文函数中输入一个空字符串
问题描述
它不会输出错误的陈述。不知道为什么它不会输出正确的答案。
测试时,请确保您的算法适用于以下情况:
当给定一个回文单词时,算法返回“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 - 如何在 void 方法 SUT Mockito 中获取对象值
- android - 如何刷新/重绘在 Android Sceneform 中呈现的 TextView?
- python - 用python重命名文件夹中的所有文件
- cypress - 重复命令
- r - 如何在 R 上的强度图中表示断口分析
- excel - Excel VBA 转置 1 个工作簿中的范围,然后将值传输到第 2 个工作簿追加到末尾
- git - $ git log --decorate --oneline --graph 一个遥控器?
- python - 将 Flask 应用程序部署到 Windows Azure 并收到 wfastcgi 错误
- c - 数组 c 编程中的随机探索
- php - PHP Query POST foreach 仅显示表单中 80 个选项中的 77 个