我正在尝试编写回文。它具有用户输入字符串,程序将告诉它是否是回文。我已经在网上搜索了代码,但似乎当我创建另一个方法时,以及在编译时,编译器会说“ Nullpointerexception”。自昨天以来,我一直在尝试此方法,但似乎我不太了解。我的ICT课程需要它。谢谢。这是我的代码。
import java.util.Scanner;
public class Palindrome {
String word, reverse="";
public static void main(String args[]){
String word;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string to check if it is a palindrome");
word = in.nextLine();
Palindrome check = new Palindrome();
check.palindromeChecker();
}
public String palindromeChecker(){
int length = word.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + word.charAt(i);
if (word.equals(reverse))
return "Palindrome";
else
return "Not a Palindrome";
}
}
最佳答案
静态main方法中的变量“ word”隐藏Palindrome
类的实例变量“ word”。
因此,您正在将Scanner中的值分配给错误的变量。
要解决此错误,您有几种选择:
最简单的方法是在主方法中删除变量,并将类Palindrome
的实例变量重新声明为静态。但是,这不是很优雅(并且不是面向对象的)。
最好将您读取的值作为参数传递给方法palindromeChecker
。
当然,还有很多其他方法可以做到这一点,但是我相信一旦您对这种语言和编程有了更深入的了解,您就会学到更多的方法。