布尔方法不重新调整正确的值

时间:2018-01-30 15:27:47

标签: return boolean

好的,我认为我是一个菜鸟,因为它是一个新的学期,但方法" palindromeTest"即使字符串相等且数字是回文,也总是返回错误。 (回文的例子是:(565)677-6565)(也不要直接给我答案我想自己解决)

public class IjazZ_PhoneStringPalindrome
{
  public static void main(String[] args) throws IOException
  {
    String phoneNumber;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Enter a phone number in this format (###) ###-####: ");
    phoneNumber = br.readLine();

    phoneNumber = justNumbers(phoneNumber);

    if (palindromeTest(phoneNumber))
    {
      System.out.println("This phone number is a palindrome!");
    }
    else
    {
      System.out.println("This phone number is not a palindrome!");
    }

  }

  public static String justNumbers(String phoneNumber)
  {
    StringTokenizer st = new StringTokenizer(phoneNumber, " ()-");
    StringBuffer number = new StringBuffer();

    while(st.hasMoreTokens())
    {
      number.append(st.nextToken());
    }

    phoneNumber = number.toString();
    return phoneNumber;
  }

  public static boolean palindromeTest(String pNumber)
  {
    StringBuffer reversedNumber = new StringBuffer(pNumber);
    reversedNumber.reverse().toString();

    if(pNumber.equals(reversedNumber))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您不能将reversedNumber.reverse().toString()返回的值分配给reversedNumber

待办事项 String reversedNumberString = reversedNumber.reverse().toString();

顺便说一下,你可以回来 return pNumber.equals(reversedNumber); - if / else语句是不必要的。