java - 使用 BufferedReader 进行无限循环

标签 java string bufferedreader tokenize

我尝试使用 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/

相关文章:

java - 小程序不适用于 chrome

string - 如何在 MongoDB 中将 B.C 之前的日期存储为 ISODate?

PHP 删除 [ 和 ] 括号之间的文本

Java 随机文件访问 : Get byte offset of line start

java - 使用 Buffered Reader 将用户输入添加到数组中

java - 在使用 ScheduledExecutorService 和无延迟文件读取之间切换

Windows 上 gradle assemble 发布时出现 JAVA_HOME 错误

java - 修改 Smali 中的现有方法

java - 有没有办法在 Android 上使用 WebRTC 共享屏幕

java - 检查一个字符串是否与其他两个字符串交错