package hihocoder;
import java.util.Scanner;
public class CopyOfTrieTree {
public static void main(String args[]) {
CopyOfTrieTree m = new CopyOfTrieTree();
m.getInput(true);
System.out.println(2222);
m.getInput(false);
}
public void getInput(boolean b) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for (int i = 0; i < n; i++) {
String s = in.next();
if(b)
System.out.println(s+0);
else
System.out.println(s+1);
}
in.close();//为什么这里加上close(),程序就运行错误,不加就是对的
}
}
如上程序,为什么加上scanner的关闭函数后,程序就运行错误,不加close函数,运行就是对的???
in.close()
这句已经将System.in输入流关闭,再次调用getInput将会报错。
把in换成scan试试
把错误的结果截一下图
1
we
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at hihocoder.TrieTree.getInput(TrieTree.java:18)
at hihocoder.TrieTree.main(TrieTree.java:13)
我的不报错,但又没有in.close都是在定义对象那个地方提出警告