私はこのコードを使用します:
public String processFile(Scanner scanner) {
String result = "";
SumProcessor a = new SumProcessor();
AverageProcessor b = new AverageProcessor();
String line = null;
while (scanner.hasNext()) {
if (scanner.hasNext("avg") == true) {
c = scanner.next("avg");
while(scanner.hasNextInt()){
int j = scanner.nextInt();
a.processNumber(j);
}
System.out.println("Exit a");
result += a.getResult();
a.reset();
}
if (scanner.hasNext("sum") == true) {
c = scanner.next("sum");
while(scanner.hasNextInt()){
int j = scanner.nextInt();
b.processNumber(j);
}
System.out.println("Exit b");
result += b.getResult();
b.reset();
}
}
return result;
}
そして、Enterキーを押すか、空の行を送信するときに、サイクル(hasNexInt())中に終了する必要があります。
String == nullなどでいくつかのメソッドを使用しようとしましたが、Javaは空の行を無視します
出力
run:
avg
1
2
3
4
sum
Exit a
1
2
3
4
しかし、私は必要です:
run:
avg
1
2
3
4
Exit a
sum
1
2
3
4