我尝试使用 BufferedReader 和 StringTokenizer 读取用户的某些输入,但输入不会终止。
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(reader.readLine());
N = Integer.parseInt(st.nextElement().toString());
M = Integer.parseInt(st.nextElement().toString());
System.out.println(N+"\n"+M);
for(int i = 0; i < M; i++) {
st = new StringTokenizer(reader.readLine());
System.out.println(st);
int t1 = Integer.parseInt(st.nextElement().toString());
int t2 = Integer.parseInt(st.nextElement().toString());
ad.add(t2);
path.put(t1, ad);
System.out.println(t1+"and"+t2);
//path.put(t2, t1);
System.out.println(path);
}
st = new StringTokenizer(reader.readLine());
int s = Integer.parseInt(st.nextElement().toString());
int t = Integer.parseInt(st.nextElement().toString());
它确实脱离了循环(通过使用 print 语句得出结论)。
输入格式为:
3 3
1 3
1 2
2 3
1 3
最佳答案
我刚刚运行了这个,它确实跳出了循环。我所做的只是删除未编译的行(ad.add(t2) 和下一行)并将“int”放在变量名称之前...
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(reader.readLine());
int N = Integer.parseInt(st.nextElement().toString());
int M = Integer.parseInt(st.nextElement().toString());
System.out.println(N + "\n" + M);
for (int i = 0; i < M; i++) {
st = new StringTokenizer(reader.readLine());
System.out.println(st);
int t1 = Integer.parseInt(st.nextElement().toString());
int t2 = Integer.parseInt(st.nextElement().toString());
System.out.println(t1 + "and" + t2);
}
st = new StringTokenizer(reader.readLine());
int s = Integer.parseInt(st.nextElement().toString());
int t = Integer.parseInt(st.nextElement().toString());
}
输出...
3 3 (I typed this)
3
3
1 3 (I typed this)
java.util.StringTokenizer@46f5331a
1and3
1 2 (I typed this)
java.util.StringTokenizer@bee145b
1and2
2 3 (I typed this)
java.util.StringTokenizer@3b7a687b
2and3
1 3 (I typed this)
程序随后终止
关于java - 使用 BufferedReader 进行无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304893/