我有一个方法返回类型为ArrayList<String>
,它也读取相同类型的参数。现在我如何type cast
或修改我的BigDecimal来读取该值?
public static ArrayList<String> currencyUtilArray(ArrayList<String> amountStr ) {
BigDecimal amount = new BigDecimal(ArrayList<String> amountStr);
//How do I define that the amountStr is ArrayList<String> and need to place in BigDecimal amount one after another till the end of the List
return amountStr;
}
或者我需要做什么
答案 0 :(得分:1)
我认为你没有正确引用它。您不能将整个ArrayList作为字符串类型的AL转换为Big Decimal。
首先,从新的BigDecimal( - )中更改ArrayList amountStr;并从ArrayList中引用单个String。
意味着你必须遍历整个事物,将其添加到数量中:
BigDecimal amount = new BigDecimal(amountStr.get(0));
For(int i = 1; i < amountStr.size(); i++){
amount = amount.add(new BigDecimal(amountStr.get(i)));
}
我相信这应该会在你回来时给你所需要的东西。
答案 1 :(得分:1)
您无法输入String
至BigDecimal
或反之亦然。
如果数组中的字符串在连接时表示一个数字,那么执行以下操作:
StringBuilder sb = new StringBuilder();
for (String s : amountStr) {
sb.append(s);
}
BigDecimal amount = new BigDecimal(sb.toString());
另一方面,如果每个String代表一个不同的数字:
for (String s : amountStr) {
BigDecimal amount = new BigDecimal(s);
// ... and do something with it ...
}
答案 2 :(得分:0)
我的理解是您要将list elements
转换为BigDecimal Array
。如果是这样,你可以这样做:
BigDecimal[] amount = new BigDecimal[amountStr.size()];
for (int i=0;i<amountStr.size();i++) {
amount[i] = new BigDecimal(amountStr.get(i));
}