2012-01-03 5 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

+0

@Gabeこのメソッドには、 '1234.5678'や' 4567.1234'のような2つの値が呼び出され、 'currUtil'という2つの値が呼び出され、値のリストが送信されます。今は、' currUtil'というメソッドを定義して、それを処理するためにBigDecimalに1つ置きます。私のメソッドを定義する方法? –

答えて

1

StringBigDecimalまたはに、逆のキャストをに入力することはできません。

アレイ内の文字列を連結するとき、このような何かの数を表すことを意図されている場合:

for (String s : amountStr) { 
    BigDecimal amount = new BigDecimal(s); 
    // ... and do something with it ... 
} 
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))); 
} 

私はそれはそれが返されたとき、あなたが必要なものを与えるべきだと考えています。

+0

私は実際にはかなり質問と混同しています。言葉は、あなたが求めているものを正確にピンポイントするのを難しくします。 ArrayList を作成しようとしている場合は、自分のコードを使用しますが、forループの間でwhatsを変更すると、他の可能性が与えられません。 – Andy

0
:各ストリングは、異なる数を表す場合、一方

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

私が理解しているのはlist elementsBigDecimal Arrayに変換したいということです。もしそうなら、あなたは以下のように行うことができます。

BigDecimal[] amount = new BigDecimal[amountStr.size()]; 
for (int i=0;i<amountStr.size();i++) { 
    amount[i] = new BigDecimal(amountStr.get(i)); 
}