Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复杂字符串到整数的转换_Java_String_Nullpointerexception_String Formatting_String Conversion - Fatal编程技术网

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
(或者两者都有)。啊,是的,我错过了。谢谢你的指点。让我更新答案以匹配这一点。