我正在尝试测试输入的单词是否是回文(向前和向后拼写相同)。据我所见,它应该可以工作,但 Eclipse 说“未使用局部变量 isPalindrome 的值”,但它被使用了。问题是,即使这个词不是回文,它也说它是。
import java.util.Scanner;
public class Palindrome {
    public static void main(String[] args) {
        String phrase;
        char[] phraseLetters;
        int endChar;
        boolean isPalindrome;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a word or phrase.");
        phrase = input.nextLine();
        input.close();
        phrase = phrase.toLowerCase();
        phrase = phrase.replaceAll(" ","");
        phraseLetters = phrase.toCharArray();
        endChar = phraseLetters.length - 1;
        for (int i = 0; i < phraseLetters.length; i++) {
            if (phraseLetters[i] != phraseLetters[endChar]) {
                isPalindrome = false;   
            } else {
                isPalindrome = true;
                endChar -= 1;
            }
        }
        if (isPalindrome = true) {
            System.out.println("This word or phrase entered is a palindrome.");
        } else {
            System.out.println("This word or phrase is not a palindrome.");
        }
    }
}
编辑:我试过 if 语句是
    if (isPalindrome == true) 
和
    if (isPalindrome)
在这两种情况下,Eclipse 都会在这种 if 条件下说“局部变量 isPalindrome 可能尚未初始化”。
最终编辑:
从那以后,我继续前进,重写了这段代码,但是如果有人还在看这个,我就回去修复我的原始代码。
我在代码开头初始化了 isPalindrome:
Boolean isPalinddrome = True;
我将for循环条件更改为:
for (int i = 0; (i < phraseLetters.length) && (isPalindrome); i++)
最后我if (isPalindrome = true)改为if (isPalindrome)