我有一个关于正在编写的基本程序的问题,我说的是赛车等单词是否是回文。
我所有颠倒字符串的方法都会删除标点符号,但是确定它是否是回文的方法却没有。
/**
* Determines if a series of letters makes a palinedrome
*
* @param str All punctuation and spaces have been removed
* before this method is called.
* @return true if phrase is a palindrome,
* false otherwise.
*/
public boolean isPalindrome(String str)
{
String d = reverseString (str);
return( str.equals (reverseString (str) ) );
}
最佳答案
好的,我不确定d
的用途是什么,因为它从未被使用过,但是,如果您想查看为什么函数不起作用,只需添加调试代码即可:
public boolean isPalindrome (String str) {
System.out.println ("DEBUG: original string = '" + str + "'");
System.out.println ("DEBUG: reverse string = '" + reverseString (str) + "'");
if (str.equals (reverseString (str)))
System.out.println ("DEBUG: returning true");
else
System.out.println ("DEBUG: returning false");
return str.equals (reverseString (str));
}
我敢打赌,您的
reverseString
函数出了点问题(但钱不多)。这些调试语句应该给您足够的资源来找出问题所在。