Java 如何使用for循环将字符串arraylist转换为double进行计算?

Java 如何使用for循环将字符串arraylist转换为double进行计算?,java,list,parsing,arraylist,double,Java,List,Parsing,Arraylist,Double,我得到了data.txt文件,必须使用ArrayList my data.txt文件包含: 32.14235.1341.4134.41335.3132.1,34.1 到目前为止我有 public void processFile() throws IOException { File file = new File("SalesData.txt"); Scanner input = new Scanner(file); ArrayList<String> a

我得到了data.txt文件,必须使用
ArrayList

my data.txt文件包含:

32.14235.1341.4134.41335.3132.1,34.1

到目前为止我有

public void processFile() throws IOException
{
    File file = new File("SalesData.txt");

    Scanner input = new Scanner(file);
    ArrayList<String> arr = new ArrayList<String>();
    String line = input.nextLine();

    StringTokenizer st = new StringTokenizer(line, ",");

    while (st.hasMoreTokens())
    {
        arr.add(st.nextToken());
    }

    setArrayListElement(arr); //calls setArrayListElement method

}

我能得到一些帮助吗???

您必须使用
Double.valueOf()

  • 不要在货币计算中使用双倍(前面的答案也是错误的)
  • 不要提及具体的类。本例中的接口是List arr=new ArrayList() 对于你的具体回答:

    BigDecimal summed = BigDecimal.ZERO;
    
    for (int i = 0 ; i < arr.size() ; i++) {
     final String value  = arr.get(i);
     try{
      BigDecimal bd = new BigDecimal(value);
      summed = summed.add(bd);
     } catch(NumberFormatException nfe){
           //TODO: Handle
     }
    }
    
    BigDecimal summated=BigDecimal.ZERO;
    对于(int i=0;i

    我向您发布了计算总金额的方法,别忘了控制例外情况

        private Double setArrayListElement(ArrayList inArray) throws NumberFormatException
    {   
        Double amount=0;    
        for (int i = 0 ; i < inArray.size() ; i++)
        {
           amount= amount+Double.valueOf(inArray.get(i));
        }
        return amount;
    }
    
    private Double setArrayListElement(ArrayList inArray)抛出NumberFormatException
    {   
    双倍金额=0;
    对于(int i=0;i
    使用
    Double.parseDouble()
    字符串
    转换为
    Double
    。请将参数添加到参数private void setArrayListElement(Arraylist inArray)中的Arraylist中使用显式索引访问而不是
    for(字符串值:arr)
    ?正确,在这种情况下不需要索引循环。
    BigDecimal summed = BigDecimal.ZERO;
    
    for (int i = 0 ; i < arr.size() ; i++) {
     final String value  = arr.get(i);
     try{
      BigDecimal bd = new BigDecimal(value);
      summed = summed.add(bd);
     } catch(NumberFormatException nfe){
           //TODO: Handle
     }
    }
    
    Double value = Double.parseDouble(yourString);
    
        private Double setArrayListElement(ArrayList inArray) throws NumberFormatException
    {   
        Double amount=0;    
        for (int i = 0 ; i < inArray.size() ; i++)
        {
           amount= amount+Double.valueOf(inArray.get(i));
        }
        return amount;
    }