1 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
需要注意的一點是,您引用的開源軟件包中的 XIRR 實現(xiàn)具有(如果您不熟悉 var args)意味著您可以擁有任意數(shù)量的事務元素。它還允許您輸入數(shù)組。XIRR還可以接受集合(例如ArrayLists),所以我在下面的代碼中所做的是:public Xirr(Transaction... tx){
在用戶輸入中創(chuàng)建一個要讀取的內(nèi)容
Scanner
創(chuàng)建日期格式化程序以將字符串轉換為日期
創(chuàng)建一個保存事務的
ArrayList
基于用戶輸入的迭代計數(shù)器
一個循環(huán),它循環(huán)用戶預定義的數(shù)量,并向每次迭代添加一個新值,其中包含用戶的下一個 int 和下一個字符串(通過日期格式化程序轉換為日期)。
for
iterations
Transaction
ArrayList
我將 ArrayList 輸入到 Xirr 方法中。
試試這個:
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.Scanner;
public double xirr_issue5b() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
ArrayList<Transaction> trans = new ArrayList<Transaction>();
int iterations = sc.nextInt();
for(int k = 0; k < iterations; k++) {
trans.add(new Transaction(sc.nextInt(), format.parse(sc.next())));
}
double rate = Xirr(trans).xirr();
sc.close();
return rate;
}
添加回答
舉報