0

行をスキャンして数字を追加しようとしています。「ENTER」を押した直後に答えを計算したかったのです。区切り文字に渡す引数は何ですか。

import java.io.*;
import java.util.*;
class add {
   public static void main(String[] args) throws IOException {
      int b=0;
      List<Integer> list  =  new ArrayList<Integer>();
      System.out.println("Enter the numbers");
      Scanner sc = new Scanner(System.in).useDelimiter(" ");
      while(sc.hasNextInt())
      {  
      list.add(sc.nextInt());
       }
      for(int i=0;i<list.size();i++) {
         b += list.get(i);
      }
      System.out.println("The answer is" + b);
   }
}
4

3 に答える 3

5

簡単に書く

Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
    list.add(sc.nextInt());
}

これは、最初の非整数が入力されるとすぐに結果を計算します...


本当に 1 行の入力だけを読みたい場合は、次のようにする必要があります。

Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
for (String token : line.split("\\s+")) {
    list.add(Integer.parseInt(token));
}
// your for loop here...
于 2013-05-18T11:22:30.840 に答える
0

リストに項目を 1 つ追加すると、ループ停止の条件は次のようになりますi >= list.size()。そしてlist.size()0です。それはあなたが望むものではありません、あなたは試してみたいです

int amount = in.nextInt();
for (int i = 0; i < amount; i++)

次に、おそらく次を使用してリストにアイテムを追加する必要がありますlist.add(in.nextInt());

于 2013-05-18T11:25:31.447 に答える