2012-01-03 69 views
0

我有一個方法返回類型爲ArrayList<String>,它也讀取相同類型的參數。現在我該如何type cast或修改我的BigDecimal來讀取該值?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

你是不是想一個ArrayList的''轉換爲一個ArrayList的''? – Gabe 2012-01-03 07:26:55

+0

@Gabe一個方法會調用併發送值列表,現在說''1234.5678'和'4567.1234'這兩個值到'currUtil'這個方法現在我需要定義我的方法'currUtil',這樣它就讀取值並將其放置在BigDecimal中一個接一個地處理它。如何定義我的方法? – 2012-01-03 07:35:44

回答

1

您不能鍵入一個String轉換爲BigDecimal反之亦然

如果陣列中的字符串是指當串聯來表示一個號碼,然後這樣做:

StringBuilder sb = new StringBuilder(); 
for (String s : amountStr) { 
    sb.append(s); 
} 
BigDecimal amount = new BigDecimal(sb.toString()); 

在另一方面,如果每個字符串代表一個不同的號碼:

for (String s : amountStr) { 
    BigDecimal amount = new BigDecimal(s); 
    // ... and do something with it ... 
} 
1

我不認爲你正確地引用它。您不能將整個ArrayList作爲字符串類型的AL轉換爲大十進制。

首先,從新的BigDecimal( - )中更改ArrayList的amountStr;並從ArrayList中引用單個字符串。

這意味着你將不得不遍歷整個事情,添加入量:

BigDecimal amount = new BigDecimal(amountStr.get(0)); 
For(int i = 1; i < amountStr.size(); i++){ 
amount = amount.add(new BigDecimal(amountStr.get(i))); 
} 

我認爲,應該給你你需要什麼返回時。

+0

我其實很困惑這個問題。這個羅嗦很難準確地指出你在問什麼。如果你正在嘗試創建一個ArrayList ,那麼使用我的代碼,但改變for循環之間的內容,因爲這不會給你其他可能性。 – Andy 2012-01-03 07:50:13

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)); 
}