我正在尝试编码回文。它有一个用户输入的字符串,程序会判断它是否是回文。我在网上搜索了代码,但似乎当我创建了另一个方法时,编译器在编译时说“Nullpointerexception”。我从昨天开始尝试这个,但似乎我无法真正理解它。我的 ICT 类(class)需要它。谢谢。这是我的代码。
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 的值分配给了错误的变量。
要修复此错误,您有多种选择:
简单的方法是删除 main 方法中的变量,并将类 Palindrome
的实例变量重新声明为静态。然而,这不是很优雅(并且不是面向对象的)。
更好的做法是将您读取的值作为参数传递给方法 palindromeChecker
。
当然还有很多其他方法可以做到这一点,但我相信一旦您对这种语言和编程有了更深入的了解,您就会学到更多方法。
关于java - 如何检查字符串是否为回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231809/