-1

PID の値が配列に既に存在する場合、ユーザーに再入力を求めるにはどうすればよいですか?

例: A を入力してから B を入力し、もう一度 A を入力すると、最後に入力した A は既に存在するため、受け入れられません。

int[] Process = {};
int NumberofProcess = 0; 

String[] PID = new String[10]; //Proces ID


System.out.print("Enter a number of Process from 1 to 10 : ");
    while(bError){
        if(scan.hasNextInt()){
            NumberofProcess = scan.nextInt();
        }else{  
            scan.next();
            continue;
        }
            bError = false;

    }
//----------------  Ask for the user to input for the Process id AT and EX ------- 
for(int i=0;NumberofProcess > i;i++){

    System.out.print("Please Enter a ProcessID " + (i + 1) + " : ");
        PID[i] = scan.next(); 

}
4

3 に答える 3

2

私は配列ではなくLinkedHashSet(入力順序を維持したい場合)を使用します。次に、セットのcontains(...)メソッドを使用して確認するか、 を使用して PID を追加しadd(...)て戻り値を確認します (追加されていない場合、つまり、セットに既に存在する場合は false)。

于 2013-08-28T13:28:57.183 に答える
0

必要なのは、ユーザーがすでにシステムに入れている PID を格納する構造を作成することです。

次に、そのストレージ内のアイテムに対して、すべての新しい入力を検証する必要があります。衝突が見つかった場合は、ユーザーにそのことを通知し、有効なデータを入力するか終了するまでプロセスを繰り返します。

Java では、コレクションと呼ばれる専用のデータ構造を使用できます。これにより、検索プロセスが高速化されます。単純なArrayListワイルドで十分です。

宣言する

Collection<String> storage = new ArrayList<>();

使用するには

boolean wasStored = storage.contains(input);

于 2013-08-28T13:29:06.107 に答える