我正在为学校编写这个java代码。我需要查看数据是否是回文,然后让用户知道结果。我的眼睛在流血。我无法弄清楚这一点!
import javax.swing.JOptionPane;
import helpers.*;
public class Palindrome {
public static boolean check(String dataInput) {
boolean test = false;
String reverseDataInput = new StringBuffer(dataInput).reverse().toString();
if (dataInput == reverseDataInput){
test=true;
return test;
}
return test;
}
public static void main(String[] args) {
String inputString = "";
int number = 0;
boolean isPalindrome = false;
number = helpers.InputUtilities.getIntegerInput(inputString, -99999, 99999);
String str = Integer.toString(number);
isPalindrome = check(str);
if (isPalindrome = true){
JOptionPane.showMessageDialog(null, str + " is a palindrome!", "Area", JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, str + " is not a palindrome!", "Area", JOptionPane.PLAIN_MESSAGE);
}
}
}
答案 0 :(得分:0)
首先将String
与.equals()
进行比较,而不是==
,因为它们是对象(请参阅this)。
if (dataInput.equals(reverseDataInput))
第二个if
语句有点不对。
if (isPalindrome = true){
相反
if (isPalindrome == true){
或(这对某些人来说看起来更好)
if (isPalindrome){
答案 1 :(得分:0)
之前我已经看过这个问题(这里:Local variable not used)。
问题只是if
:语句。取代
if (isPalindrome = true)
与
if (isPalindrome)
您还需要修改第一个if
:
if (dataInput == reverseDataInput)
通过
if (dataInput.equals(reverseDataInput))
因为==
检查指针相等性并且因为你生成了一个新字符串,所以两个字符串不相同,它们是相同的,但不一样......