7

Javaを使用して配列でユーザー入力を取得する方法は? つまり、プログラムで自分で初期化するのではなく、ユーザーがその値を指定します..ガイドしてください!!

4

8 に答える 8

7

stdinから文字列を読み取り、 に追加しList<String>、 を使用toArrayして に変換する簡単なコードを次に示します (本当に配列を操作する必要があるString[]場合)。

import java.util.*;

public class UserInput {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        Scanner stdin = new Scanner(System.in);

        do {
            System.out.println("Current list is " + list);
            System.out.println("Add more? (y/n)");
            if (stdin.next().startsWith("y")) {
                System.out.println("Enter : ");
                list.add(stdin.next());
            } else {
                break;
            }
        } while (true);
        stdin.close();
        System.out.println("List is " + list);
        String[] arr = list.toArray(new String[0]);
        System.out.println("Array is " + Arrays.toString(arr));
    }
}

以下も参照してください。

于 2010-04-12T15:39:49.420 に答える
6
package userinput;

import java.util.Scanner;

public class USERINPUT {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        //allow user  input;
        System.out.println("How many numbers do you want to enter?");
        int num = input.nextInt();

        int array[] = new int[num];

        System.out.println("Enter the " + num + " numbers now.");

        for (int i = 0 ; i < array.length; i++ ) {
           array[i] = input.nextInt();
        }

        //you notice that now the elements have been stored in the array .. array[]

        System.out.println("These are the numbers you have entered.");
        printArray(array);

        input.close();

    }

    //this method prints the elements in an array......
    //if this case is true, then that's enough to prove to you that the user input has  //been stored in an array!!!!!!!
    public static void printArray(int arr[]){

        int n = arr.length;

        for (int i = 0; i < n; i++) {
            System.out.print(arr[i] + " ");
        }
    }

}
于 2011-10-09T08:14:44.217 に答える
0

java.util.Scannerをインポートします。

クラス例{

//文字列が整数と見なされるかどうかを確認します。

public static boolean isInteger(String s){

    if(s.isEmpty())return false;

    for (int i = 0; i <s.length();++i){

        char c = s.charAt(i);

        if(!Character.isDigit(c) && c !='-')

            return false;
    }

    return true;
}

//Get integer. Prints out a prompt and checks if the input is an integer, if not it will keep asking.

public static int getInteger(String prompt){
    Scanner input = new Scanner(System.in);
    String in = "";
    System.out.println(prompt);
    in = input.nextLine();
    while(!isInteger(in)){
        System.out.println(prompt);
        in = input.nextLine();
    }
    input.close();
    return Integer.parseInt(in);
}

public static void main(String[] args){
    int [] a = new int[6];
    for (int i = 0; i < a.length;++i){
        int tmp = getInteger("Enter integer for array_"+i+": ");//Force to read an int using the methods above.
        a[i] = tmp;
    }

}

}

于 2010-04-12T16:19:48.067 に答える
0

これは、この入力をどのように受け取るか、つまり、プログラムがユーザーとどのようにやり取りするかによって大きく異なります。

最も単純な例は、実行可能ファイルをバンドルする場合です。この場合、ユーザーはコマンドラインで配列要素を指定するだけで、アプリケーションのmainメソッドから対応する配列にアクセスできます。

または、ある種の webapp を作成している場合は、手動でクエリ パラメータを解析するか、解析ページに送信する HTML フォームをユーザーに提供することによって、アプリケーションのdoGet/メソッドで値を受け入れたいと思うでしょう。doPost

Swing アプリケーションの場合は、ユーザーが入力できるようにテキスト ボックスをポップアップ表示する必要があります。また、他のコンテキストでは、ユーザーによって以前に保存されたデータベース/ファイルから値を読み取ることができます。

基本的に、input を取得する方法を理解すれば、input を配列として読み取るのは非常簡単です。アプリケーションが実行されるコンテキストと、ユーザーがこのタイプのアプリケーションとどのように対話することを期待するかを考えてから、理にかなった I/O アーキテクチャを決定する必要があります。

于 2010-04-12T14:21:13.867 に答える
0

**ユーザー入力による配列の受け入れ方法

答え:-

import java.io.*;

import java.lang.*;

class Reverse1  {

   public static void main(String args[]) throws IOException {

     int a[]=new int[25];

     int num=0,i=0;

     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

     System.out.println("Enter the Number of element");

     num=Integer.parseInt(br.readLine());

     System.out.println("Enter the array");

     for(i=1;i<=num;i++) {
        a[i]=Integer.parseInt(br.readLine());
     }

     for(i=num;i>=1;i--) {
        System.out.println(a[i]);    
     }

   }

}
于 2010-10-02T14:34:46.337 に答える