Javaを使用して配列でユーザー入力を取得する方法は? つまり、プログラムで自分で初期化するのではなく、ユーザーがその値を指定します..ガイドしてください!!
8 に答える
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));
}
}
以下も参照してください。
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] + " ");
}
}
}
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;
}
}
}
これは、この入力をどのように受け取るか、つまり、プログラムがユーザーとどのようにやり取りするかによって大きく異なります。
最も単純な例は、実行可能ファイルをバンドルする場合です。この場合、ユーザーはコマンドラインで配列要素を指定するだけで、アプリケーションのmain
メソッドから対応する配列にアクセスできます。
または、ある種の webapp を作成している場合は、手動でクエリ パラメータを解析するか、解析ページに送信する HTML フォームをユーザーに提供することによって、アプリケーションのdoGet
/メソッドで値を受け入れたいと思うでしょう。doPost
Swing アプリケーションの場合は、ユーザーが入力できるようにテキスト ボックスをポップアップ表示する必要があります。また、他のコンテキストでは、ユーザーによって以前に保存されたデータベース/ファイルから値を読み取ることができます。
基本的に、input を取得する方法を理解すれば、input を配列として読み取るのは非常に簡単です。アプリケーションが実行されるコンテキストと、ユーザーがこのタイプのアプリケーションとどのように対話することを期待するかを考えてから、理にかなった I/O アーキテクチャを決定する必要があります。
**ユーザー入力による配列の受け入れ方法
答え:-
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]);
}
}
}