簡體   English   中英

關於帶字符數組的 for 循環的基本問題(Java)

[英]Basic question about for loop with char array (Java)

我的任務是通過用戶輸入 go 並將其轉換為總和。 想法是將所有字母更改為相應的數字,如a = 1等等。

非常基本的東西,但我不知所措,我的想法是將用戶響應轉換為 char 數組,然后循環遍歷每個 char,然后使用開關或多個循環來獲取值,但我什至無法獲得 for循環工作,因為我得到"Cannot invoke charAt(int) on the array type char[]"

public class question3 {

    public static void main(String[] args){
        Scanner userTypes = new Scanner(System.in);

        String wordValue;
        System.out.print("Please enter a string");
        wordValue = userTypes.next();

        String lowerCase;
        lowerCase = wordValue.toLowerCase();

        char[] arrayConvert = lowerCase.toCharArray();

        System.out.println(arrayConvert);
        int fullNumber;
        System.out.print("Please enter an int");
        fullNumber = userTypes.nextInt();

        double decimalNumber;
        System.out.print("Please enter a double");
        decimalNumber = userTypes.nextDouble();

        double totalNumber;
        totalNumber = fullNumber + decimalNumber;
        System.out.print("your result is " + totalNumber);

        for(int i=0; i< arrayConvert.length;i++) {
            if(arrayConvert.charAt(i)== ("a")){

            }
        }
    }

我沒有測試您的代碼,但charAt不是 char[] 方法。 嘗試這個:

for(int i=0; i< arrayConvert.length;i++) {
    if(arrayConvert[i] == 'a'){

    }
}

我的第一個問題,為什么要獲取string並轉換為intlong 看起來您需要為所有輸入編寫代碼(即,如果您想獲得 1000 個值作為輸入,那么您需要編寫代碼 stdout 和 next* 操作 1000 次。

試試下面的方法,這將幫助用戶選擇他們的輸入選擇並獲得這些輸入的總和值。

SumGivenInputs.java

import java.util.Arrays;
import java.util.Scanner;

public class SumGivenInputs {

   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.print("Enter the number of inputs\n");
       int noOfInput = scan.nextInt();

       System.out.printf("Enter the %d input%s \n", noOfInput, noOfInput > 1 ? "s one by one" : "");
       Integer[] inputList = new Integer[noOfInput];
       for (int i = 0; i < noOfInput; i++) {
           inputList[i] = scan.nextInt();
       }
       int result = 0;
       for (Integer input : Arrays.asList(inputList)) {
           result += input;
       }
       System.out.printf("Sum = %s", result);
   }
}

Output:

Enter the number of inputs
5
Enter the 5 inputs one by one 
10
20
30
5
50
Sum = 115

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM