Java 处理-NullPointerException将字符串转换为浮点

Java 处理-NullPointerException将字符串转换为浮点,java,nullpointerexception,processing,Java,Nullpointerexception,Processing,我正在开发一个数据可视化工具,所以我使用此代码从csv文件中引入数据- //for importing csv files into a 2d array //by che-wei wang String lines[] = loadStrings("food.csv"); String [][] csv; int csvWidth=0; //calculate max width of csv file for (int i=0; i < lines.length; i++) {

我正在开发一个数据可视化工具,所以我使用此代码从csv文件中引入数据-

//for importing csv files into a 2d array
//by che-wei wang

String lines[] = loadStrings("food.csv");
String [][] csv;
int csvWidth=0;

//calculate max width of csv file
for (int i=0; i < lines.length; i++) {
  String [] chars=split(lines[i],',');
  if (chars.length>csvWidth){
    csvWidth=chars.length;
  }
}

//create csv array based on # of rows and columns in csv file
csv = new String [lines.length][csvWidth];

//parse values into 2d array
for (int i=0; i < lines.length; i++) {
  String [] temp = new String [lines.length];
  temp= split(lines[i], ',');
  for (int j=0; j < temp.length; j++){
   csv[i][j]=temp[j];
  }
}

执行以下操作以将字符串转换为float

float f = Float.parseFloat(timestring);

您得到的是“NullPointerException”,因为您没有指定要存储的“timeString”的哪个元素,以及要存储的“timeFloat”的哪个元素。您可以通过使用for循环来解决这个问题。例如:

 for (int i = 0; i < timeString.length; i++) {
        timeFloat[i] = Float.(timeString[i]);
    }

这个for循环遍历“timeString”的所有值,并将它们存储在“timeFloat”的相应元素中;例如,“timeString”的元素1将存储在“timeFloat”的元素1中。

尝试查看。那么,哪个指针为null??你们调试它是为了弄清楚吗?你们在哪里定义float?我实际上不知道如何弄清楚哪个指针是空的。我知道timeFloat是问题的根源。timeString工作得很好,因为它是一个字符串,所以我不能在以后的可视化过程中使用它。您在哪里定义float?就我所知,parseFloat函数不适用于处理中的数组,但使用floatstring[]函数应该是可行的。我只是在float-timeFloat[]=floattimeString上不断得到一个NullPointerException@jessemac然后检查数组时间字符串是否为null。我想这是我不理解的部分。什么会使时间字符串为空?当我注释掉我的转换行并只打印LNTIMESTRING时;没有问题。也许我只是不明白null的意思,当我这么做的时候,它说局部变量timeFloat可能没有被激活initialized@jessemac这是因为您尚未初始化数组,就像您对“timeString”数组所做的那样。示例:float[]timeFloat=newfloat[timeString.length];把这条线放在for循环之前,就这样!非常感谢你。我不知道该如何初始化它。
 for (int i = 0; i < timeString.length; i++) {
        timeFloat[i] = Float.(timeString[i]);
    }