如何将ArrayList <string>转换为Float [] </string>

时间:2011-09-11 16:39:16

标签: android arraylist

我必须从文件中检索一些数据才能在图表中显示它。显示图表的函数要求数据为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);
        }

感谢您的帮助。

2 个答案:

答案 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块中这样做。