Java - Scanner抛出异常

时间:2015-06-12 09:25:38

标签: java

我将程序从 String variables 更改为 StringBuffer
我之前在这个程序中使用了扫描仪,第一个正在工作,只有第二个正在制造麻烦。

Scanner sb = new Scanner(System.in);
replaceFind = replaceFind.append(sb.nextLine());
sb.close();

这是我的扫描仪本身的代码。

StringBuffer buff = new StringBuffer(text), replaceFind = new StringBuffer();

较低的一个是我使用的变量。

最后我将发布自动抛出的异常:

  

线程“main”中的异常java.util.NoSuchElementException:找不到行       在java.util.Scanner.nextLine(未知来源)
      在com.stoeger.StringUebung.insertNewText(StringUebung.java:143)
      在com.stoeger.StringUebung。(StringUebung.java:45)
      在com.stoeger.TheMain.main(TheMain.java:6)

这是我使用的第二台扫描仪,工作正常:

String find = null;
Scanner sb = new Scanner(System.in);
find = sb.nextLine();
sb.close();

3 个答案:

答案 0 :(得分:0)

例外来自sb.nextLine()。您可以在调用sb.nextLine()之前检查sb.hasNextLine(),这必须避免您遇到的异常。

答案 1 :(得分:0)

解决我的问题: 我的程序中有2个扫描程序,这引发了异常。

我将我的扫描仪作为全局变量(私有),并在程序结束时关闭它,现在我可以正常使用它。

答案 2 :(得分:0)

Scanner sb = new (System.in);
StringBuffer replaceFind = new StringBuffer();

while (sb.hasNextLine()) 
    replaceFind = replaceFind.append(sb.nextLine());

sb.close();