Java 复杂字符串到整数的转换
我试图将一个包含字符串值的数组转换为整数值,我使用了Java 复杂字符串到整数的转换,java,string,nullpointerexception,string-formatting,string-conversion,Java,String,Nullpointerexception,String Formatting,String Conversion,我试图将一个包含字符串值的数组转换为整数值,我使用了parseInt函数,但在执行时收到一条错误消息(java.lang.NullPointerException)。下面是我的代码片段 public int NumberOfColumns; public int[][]CMax,CMin; for (int i = 1; i < datas.length; i++) { for (int j = 1; j < NumberOfColumns+1; j++
parseInt
函数,但在执行时收到一条错误消息(java.lang.NullPointerException)。下面是我的代码片段
public int NumberOfColumns;
public int[][]CMax,CMin;
for (int i = 1; i < datas.length; i++)
{
for (int j = 1; j < NumberOfColumns+1; j++)
{
CMax[i][j] = Integer.parseInt(datas[i][j]);
System.out.println(CMax[i][j]);
System.out.println(datas[i][j]);
}
}
public int NumberOfColumns;
公共整数[][]CMax,CMin;
对于(int i=1;i
我觉得我收到了这个错误消息,因为我的数据数组包含一些像“-”这样的字符。我的数据数组中存储的一些值的示例包括0-31、8-*、。如何成功解决此问题?此外,我还需要有关如何仅从这些字符串(例如0-31)中提取整数的帮助。我希望将上限(例如31)存储到一个单独的整数数组中,将下限(例如0)存储到另一个整数数组中
下面是我的数据数组中一些值的摘录
<0-15> <0-7>
<0-15> <0-7>
<0-15> <0-7>
<32-47> <0-7>
<32-47> <0-7>
正如评论中所指出的,NPE的唯一可能性是以下其中一种为空
- 数据
- 数据[i]
- CMax
- CMax[i]
- 列数
注意:Java数组索引以0开始,而不是1。我的猜测是datas[datas.length-1][NumberOfColumns]==null
一点建议:将索引从0迭代到N-1(包括),而不是从1迭代到N。什么是
NumberOfColumns
?填充数组的代码在哪里?变量应以小写字母开头。请使用实际数据发布datas
2D数组CMax
和datas
正确初始化?“您是否验证了datas[i][j]
中的所有值都可转换为整数?”这将产生NumberFormat
异常,不是一个NullPointer
one正是。。。那就是我想带他去的地方。。。。当他试图在数组元素中找到精确的值时,我假设他会注意到也有空值。(这就是为什么我甚至没有询问NPE的行号)。但是null
值也会使parseInt()
抛出NumberFormat
异常:)。唯一能在他提供的代码片段中抛出NPE
的是datas
是null
或者CMax
是null
(或者两者都有)。啊,是的,我错过了。谢谢你的指点。让我更新答案以匹配这一点。