Processing - 将字符串转换为float的NullPointerException

时间:2014-02-21 16:27:56

标签: 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++) {
  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];
  }
}

效果很好,但是将所有行都作为字符串引入。 Processing有一个简单的float(string)转换,但我在这个转换代码上得到一个NullPointerException:

String[] timeString = csv[2];
float timeFloat[] = float(timeString);

2 个答案:

答案 0 :(得分:0)

这样做可以将字符串转换为float

float f = Float.parseFloat(timestring);

答案 1 :(得分:0)

您正在获取'NullPointerException',因为您没有指定要存储的'timeString'元素,以及要将其存储在'timeFloat'中的哪个元素。您可以使用for循环来解决此问题。例如:

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

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

的元素之一中