我必须从文件中检索一些数据才能在图表中显示它。显示图表的函数要求数据为float[]
,而检索到的数据的格式为ArrayList<String>
。
将ArrayList<String>
转换为float[]
的最简单方法是什么?
try {
FileInputStream fIn = context.openFileInput(fileDir+fileName);
InputStreamReader ipsr = new InputStreamReader(fIn);
BufferedReader b = new BufferedReader(ipsr);
ArrayList<String> list_prix = new ArrayList<String>();
String ligne;
while ((ligne = b.readLine()) != null) {
String dtVal = ligne.split(" ")[2];
dtVal = dtVal.substring(0, dtVal.length() - 2);
list_prix.add(dtVal);
}
//just here if i can convert list_prix to float[]
fIn.close();
ipsr.close();
}
catch (Exception e)
{
Log.e("blah", "Exception", e);
}
感谢您的帮助。
答案 0 :(得分:3)
我认为以下将使用Guava进行...
Collection<Float> floats = Collections2.transform(list_prix, new Function<String, Float>() {
public Float apply(String input) {
return Float.parseFloat(input);
}
});
Float[] floatArray = new Float[floats.size()];
floats.toArray(floatArray);
答案 1 :(得分:2)
您可以循环使用Float.parseFloat()。
float [] floatValues = new float[list_prix.size()];
for (int i = 0; i < list_prix.size(); i++) {
floatValues[i] = Float.parseFloat(list_prix.get(i));
}
现在,假设您的ArrayList中的每个字符串都可以实际解析为float。如果没有,它可能会抛出异常,所以如果你不确定,你可能想在try / catch块中这样做。