Java 如何使用for循环将字符串arraylist转换为double进行计算?
我得到了data.txt文件,必须使用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
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()
:
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;
}