簡體   English   中英

使用掃描儀將數據輸入數組

[英]using scanner to input data into an array

嗨,我是一個初學者,今天我開始學習數組。 我編寫了以下工作程序。

import java.util.Scanner;

    public class Arr {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("enter some numbers");
            int[] x = new int[5];
            x[0] = scanner.nextInt();
            x[1] = scanner.nextInt();
            x[2] = scanner.nextInt();
            x[3] = scanner.nextInt();
            x[4] = scanner.nextInt();
            String string = "the numbers as requested are : ";
            for(int i = 0; i < x.length; i++) {
                System.out.println(string + x[i]);
            }
            scanner.close();
        }
    }

但是,如果我的數組有1000個數字,則此過程將變得很麻煩。 有沒有一種簡單的方法可以輸入數字而無需input scanner for each package鍵入input scanner for each package

不只是硬編碼。 使用while循環並使用您的限制。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("enter some numbers");
        int[] x = new int[5];
        int j = 0;
        while (scanner.hasNext() && j < limit) { 
            if (scanner.hasNextInt()) {
                x[j] = scanner.nextInt();
                j++;
            }

        }

        String string = "the numbers as requested are : ";
        for (int i = 0; i < x.length; i++) {
            System.out.println(string + x[i]);

        }
        scanner.close();

    }

其中5輸入的限制為4 99100輸入的限制為99 100

但是,如果我的數組有1000個數字,則此過程將變得很麻煩。 有沒有一種簡單的方法可以輸入數字而無需為每個包裹鍵入輸入掃描儀

是的,通過使用循環。 使用for循環while循環

int[] array = new int[5];
for(int x=0; x<array.length; x++) //Prompt as many times as the array size
    array[x] = scanner.nextInt();

通常,在確定要迭代多少次時使用for循環, 在不確定要運行多少次時使用while循環。

擴展沒有@ Suresh-Atta提到的硬編碼限制的想法,我來看看利用ArrayList ,請參閱為什么在Java中最好使用List而不是Array來存儲動態數量的項目。 這樣做意味着您需要一些指示器來退出輸入的讀數,在這種情況下,單詞“ exit”

import java.util.Scanner;
import java.util.ArrayList;

public class Arr {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("enter some numbers");
        ArrayList<Integer> numbers = new ArrayList<Integer>();

        while (scanner.hasNext()) {        
            if (scanner.hasNextInt()) {
                numbers.add(scanner.nextInt());
            } else {
                String s1 = scanner.next();
                if ("exit".equalsIgnoreCase(s1)) {
                     break;
                }
            }
        }

        String string = "the numbers as requested are : ";
        for (Integer x : numbers) {
            System.out.println(x);
        }
        scanner.close();

     }
 }

這是一個示例:

public static void main(String[] args) {
    int ARRAY_LENGTH = 5;
    int[] intArray = new int[ARRAY_LENGTH];
    int x = 0;

    try (Scanner reader = new Scanner(System.in)) {
        System.out.println("Enter " + ARRAY_LENGTH + " numbers [Something else exits]: ");
        while (x < ARRAY_LENGTH) {
            if (reader.hasNextInt()) {
                intArray[x++] = reader.nextInt();
            } else {
                System.out.println("Input not a number, exiting.");
                break;
            }
        }
    }

    //Print array
    System.out.print("Array has: ");
    for (int number : intArray) {
        System.out.print(number + " ");
    }
    System.out.println();
}

這是另一個:

public static void main(String[] args) {
    ArrayList<Integer> array = new ArrayList();
    try (Scanner reader = new Scanner(System.in)) {
        System.out.println("Enter numbers [Something else exits]: ");
        while (reader.hasNextInt()) {
            array.add(reader.nextInt());
        }
    }

    //Print array
    System.out.print("Array has: ");
    for (int number : array) {
        System.out.print(number + " ");
    }
    System.out.println();
}

暫無
暫無

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

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