我将程序从 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();
答案 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();