我有一个关于正在编写的基本程序的问题,我说的是赛车等单词是否是回文。

我所有颠倒字符串的方法都会删除标点符号,但是确定它是否是回文的方法却没有。

/**
* 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函数出了点问题(但钱不多)。这些调试语句应该给您足够的资源来找出问题所在。

10-05 21:35