STDからの入力を受け取り、コンソールに出力しようとしています。以下はプログラムです。私は3つの数字だけを印刷しようとしています。しかし、私の入力は3つ以上の数字を取っています私はここで間違って何ですか?scanner.next()はJavaでどのように動作しますか
public static void main(String[] args) {
String reg= "^-?(\\d+)$";
int b[]= new int[3];
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++){
if(sc.next().matches(reg)){
b[i]= Integer.parseInt(sc.next());
}
}
System.out.println(Arrays.toString(b));
for(int c=0;c<b.length;c++){
System.out.println(b[c]);
}
}
output:
------------------
20
30
40
50
60
70
[30, 50, 70]
30
50
70
'if(sc.next()。matches(reg)){'はどうするのですか? – piyushj
あなたは6つの数字を読んでいます。毎回2回ループしています。あなたのifチェックで3、そしてparseIntで3つ – azurefrog
私の意図は。ユーザーが数字以外を入力した場合。それらをスキップします。 sc.next()。matches(reg)を追加したのは数字だけです。 – shreekanth