用阵列打印一个自定义方法一个值



我试图使此方法打印一个字符串[] strarr中包含的四个字符串消息之一。我尝试通过在主要方法中调用该方法来执行此操作,并键入许多不同形式的Simplearray();我尝试填写括号,写几种不同的方式,但没有任何奏效。我实际上已经在研究它已经好几天了,通常我放弃并继续前进。

尽管它似乎不切实际,但我确实需要与其书写类似的方法,因为我的项目标准指出它必须包含一个参数并返回void。

public static void simpleArray(String[] greetings) {
    String[] strArr = {"Welcome To CWU BANK!", "Thank you for using CWU ATM!", "Please insert DEBIT card", "We value your business!"};
        int i = (int)(Math.random() * strArr.length);
        System.out.println(strArr[i]);
    }

这是我的主要方法,我尝试在第6行中调用自定义方法。

public static void main(String[] args) throws IOException   {
    double amountToWithdrawl;
    double saveRandomBalance;
    double remainingBalance; 
    simpleArray();
    printStartupMessage();
    Scanner keyboard = new Scanner(System.in);
    Scanner keyboardDouble = new Scanner(System.in);
    saveRandomBalance = getRandomBalance();
    System.out.println("CHECKING BALANCE**** $" + saveRandomBalance);
              System.out.println("Would you like to withdrawl from CHECKING****? Y/N");
    String proceedWithWithdrawl = keyboard.nextLine();
    while (!proceedWithWithdrawl.equalsIgnoreCase("y") && !proceedWithWithdrawl.equalsIgnoreCase("n") 
                 && !proceedWithWithdrawl.equalsIgnoreCase("yes") && !proceedWithWithdrawl.equalsIgnoreCase("no")) 
    {
        System.out.println("Invalid response. Enter [Y] or [N].");
                 proceedWithWithdrawl = keyboard.next();
    } 
        switch(proceedWithWithdrawl)
        {
            case "N": 
            case "n":
            case "nO":   
            case "NO":
            case "No":
                System.out.println("Returning card... please wait...");
                System.out.println("Card returned. Thank you for using CWU Bank!");
                break;
            case "yeS":
            case "YEs":
            case "yEs":
            case "yES":   
            case "YeS":
            case "YES":
            case "Yes": 
            case "yes":
            case "y":
            case "Y":  
                System.out.println("Enter amount to withdrawl: ");
                amountToWithdrawl = keyboardDouble.nextDouble();
                remainingBalance = saveRandomBalance - amountToWithdrawl;
                remainingBalance = Math.round(remainingBalance * 100);
                remainingBalance = remainingBalance/100;
                if (amountToWithdrawl % 20 == 0 && amountToWithdrawl <= saveRandomBalance)
                {
                    System.out.println("Dispensing...");
                    System.out.println("ACCOUNT BALANCE: $" + remainingBalance);
                    System.out.println("$" + amountToWithdrawl + " has been withdrawn from CHECKING****");
                    System.out.println("Returning card... please wait...");
                    System.out.println("Card returned. Thank you for using CWU Bank!");
                    //CallDollarBill.dollarBill();
                }
                else if (amountToWithdrawl > saveRandomBalance)
                {
                    System.out.println("Insufficient Balance.");
                }
                else if (amountToWithdrawl % 20 != 0)
                {
                    System.out.println("Please enter multiples of 20.");
                }
                //else
                //{
                //     System.out.println("invalid input");
                //}
        } 

}

现在,它提供的错误如下。

firstDraftFinal.java:69:错误:类firstDraftFinal中的方法simplearray不能应用于给定类型; simperearray(); ^

必需:字符串[] 发现:没有争论 原因:实际和正式的参数列表在长度上有所不同

1错误

我知道问题的一部分可能是int i(和strrarr)是整数,但我不知道该怎么做。我聘请了一位家教,但我没时间了。我还知道开关语句不是有效的,我将改变这一点。谢谢。

您的当前代码指定未使用的参数;虽然目前尚不清楚您为什么要这样做,但您只需通过null即可。但是,也许您打算的是通过问候列表。即,请参见下面的第二版。


    class Test {
        public static void main(String[] args) {
            // Per your current code.
            for (int i=0; i<10; i++) simpleArray(null);
            System.out.println("");
            // What you may be looking for.
            String[] strArr = { "Welcome To CWU BANK!", "Thank you for using CWU ATM!", "Please insert DEBIT card",
            "We value your business!" };
            for (int i=0; i<10; i++) simpleArray2(strArr);
        }
        public static void simpleArray(String[] greetings) {
            String[] strArr = { "Welcome To CWU BANK!", "Thank you for using CWU ATM!", "Please insert DEBIT card",
                    "We value your business!" };
            int i = (int) (Math.random() * strArr.length);
            System.out.println(strArr[i]);
        }
        public static void simpleArray2(String[] greetings) {
            int i = (int) (Math.random() * greetings.length);
            System.out.println(greetings[i]);
        }
    }

您有编译错误,因为您没有将任何参数传递给需要它们的方法,只需传递给您的方法ainter string raray,因为您在此方法中不使用传递的参数:

public static void main(String[] args) throws IOException   {
    double amountToWithdrawl;
    double saveRandomBalance;
    double remainingBalance; 
    simpleArray(new String[0]);
    printStartupMessage();

要继续重构您的代码,您可能希望摆脱此论点(如果代码的其他部分可能会使用它)并这样重写:

public static void printGreetings() {
     String[] greetings = {"Welcome To CWU BANK!",
                             "Thank you for using CWU ATM!",
                             "Please insert DEBIT card",
                             "We value your business!"
     };
     int random = new Random().nextInt(greetings.length);
     System.out.println(greetings[random]);
}

相关内容

最新更新