第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取用戶輸入(args)并將其傳遞給集合獲取方法

如何獲取用戶輸入(args)并將其傳遞給集合獲取方法

手掌心 2022-09-01 16:46:26
我發(fā)現(xiàn)了一個進行IRR計算的開源Java代碼。我想把它集成到我的程序中。這個想法是輸入這個java程序一些金額和日期,然后計算IRR并返回一個數(shù)字(雙精度)。程序將集合類作為輸入(數(shù)字和日期的組合)除外,然后返回數(shù)字。它可以根據(jù)需要使用任意數(shù)量的數(shù)字和日期。文檔中有一些示例代碼,但所有這些示例代碼都顯示了此程序如何在硬編碼代碼中獲取參數(shù)。我正在嘗試更改它,因此程序將讓用戶輸入將其解析為數(shù)字和日期,然后理想情況下將它們轉換為集合并將其傳遞給java程序。我做不到。我無法從用戶輸入創(chuàng)建集合對象并將其傳遞給程序。我正在附加示例代碼,該示例代碼在代碼中對值進行了硬編碼,我只想編寫一個類來動態(tài)捕獲用戶輸入(組合值和日期,理想情況下是一個值,一個日期等)并將其傳遞給XIRR方法。public double xirr_issue5b() {    double rate = new Xirr(        new Transaction(-2610, "2001-06-22"),        new Transaction(-2589, "2001-07-03"),        new Transaction(-5110, "2001-07-05"),        new Transaction(-2550, "2001-07-06"),        new Transaction(-5086, "2001-07-09"),        new Transaction(-2561, "2001-07-10"),        new Transaction(-5040, "2001-07-12"),        new Transaction(-2552, "2001-07-13"),        new Transaction(-2530, "2001-07-16"),        new Transaction(-9840, "2001-07-17"),        new Transaction(38900, "2001-07-18")    ).xirr();    return rate;}
查看完整描述

1 回答

?
慕的地8271018

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 和下一個字符串(通過日期格式化程序轉換為日期)。foriterationsTransactionArrayList

  • 我將 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;

}


查看完整回答
反對 回復 2022-09-01
  • 1 回答
  • 0 關注
  • 71 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號