好的,我认为我是一个菜鸟,因为它是一个新的学期,但方法" 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;
}
}
}
答案 0 :(得分:0)
您不能将reversedNumber.reverse().toString()
返回的值分配给reversedNumber
。
待办事项
String reversedNumberString = reversedNumber.reverse().toString();
顺便说一下,你可以回来
return pNumber.equals(reversedNumber);
- if / else语句是不必要的。