我的一种方法遇到问题。请记住,我正在大学学习 Java,因此我可能无法跟上简单事物的发展速度。下面是添加表达式的方法。我遇到的问题是在 x = x.substring.(1, x.length() - 1);
处找到的我收到一个异常,内容如下:
Exception in thread "main" java.lang.NullPointerException
我不知道这意味着什么和/或如何解决它。如果你能指出我正确的方向,那就太好了。 谢谢。
public static int adder(String x){
int total = 0;
x = x.substring(1, x.length() - 1);
sopln(x);
String[] nums = x.split("\\+");
for(int i = 0; i < nums.length; ++i){
if(nums[i].charAt(0) == ' ' || nums[i].charAt(nums[i].length()-1) == ' '){
sopln("ERROR: Excess whitespace identified.");
nums[i] = nums[i].trim();
}
nums[i] = nums[i].replaceAll(" ", "");
if(nums[i].charAt(0) == '-')
total -= Integer.parseInt(nums[i]);
else
total += Integer.parseInt(nums[i]);
}
return total;
}
最佳答案
这可能意味着您的字符串 x 为 null,并且实际上并未设置为字符串的对象。
你如何调用该方法?
当您使用像
这样的硬编码字符串调用它时,会发生这种情况吗?int num = adder("string checking in");
如果不是,那么在代码上游的某个地方,您传递给 adder 方法的 String 变量为 null。
关于Java:带有子字符串的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948977/