我正在尝试通过扫描线来添加数字。我希望在按“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);
}
}
答案 0 :(得分:5)
简单写一下
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
list.add(sc.nextInt());
}
这将在输入第一个非整数后立即计算结果...
如果您真的只想阅读一行输入,则需要执行以下操作:
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...
答案 1 :(得分:0)
您正在向列表中添加一个项目,然后您的循环停止条件为i >= list.size()
;并且list.size()
是0.这不是你想要的,你想尝试
int amount = in.nextInt();
for (int i = 0; i < amount; i++)
然后,您可能希望使用list.add(in.nextInt());
答案 2 :(得分:0)
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("[\r\n/]");
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);
}
}