首页 > 解决方案 > 爪哇 | InputMismatchException 后我无法使用 Scanner

问题描述

我仍然是 Java 的初学者,我想创建一个将字节数组转换为字符串的程序。数组的字节是用 Scanner 拾取的,但是,当我获得 InputMismatchException 时,它会创建一个无限循环,我无法插入新的字节......我该如何解决这个问题?这是代码:

System.out.println("Letters: ");
      int letters = scan.nextInt();
      System.out.println("Bytes: ");
      byte b = 0;
      byte[] ByteArray = new byte[letters];
          int i = 0;
          while(i != letters || i < 0) {
              try {
                  b = scan.nextByte();
                  ByteArray[i] = b;
                  i++;
              } catch (InputMismatchException e) {
                  System.out.println("Min = -127/ Max = 127");
              }
              System.out.println(i);
          }
          String Word = new String(ByteArray);
      System.out.println(Word);
  }
  scan.close();

这是输出:

Min = -127/ Max = 127
0
Min = -127/ Max = 127
0
Min = -127/ Max = 127
0
...

我试图在 System.out.println("Min = -127/ Max = 127") 之后加上“break”,但没有成功。

提前致谢!

标签: javajava.util.scannerinfinite-loopinputmismatchexception

解决方案


推荐阅读