java.util.Scanner 中的 NoSuchElementException
NoSuchElementException in java.util.Scanner
此代码已成功编译,但显示运行时错误和异常,因为扫描器中没有此类元素 class。读取测试用例后,应该是把输入作为字符串,但是却显示异常。
public class CandidateCode
{
public static void main(String args[] ) throws Exception
{
//Write code here
Scanner sc=new Scanner(System.in);
int testCase=sc.nextInt();
while(testCase>0)
{
//sc.next();
Scanner scan=new Scanner(System.in);
String temp="";
String res="";
for(int i=0;i<str.length();i++)
{
if(temp.indexOf(str.charAt(i))==-1)
temp=temp+str.charAt(i);
else
{
res=res+str.charAt(i);
}
}
char min='z';
for(int j=0;j<res.length();j++)
{
if(res.charAt(j)<min)
min=res.charAt(j);
}
System.out.println(min);
testCase++;
}
}
}
编译日志错误为:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at CandidateCode.main(CandidateCode.java:19)
NoSuchElementException
将被抛出,因为您正试图从数据到达末尾的输入(扫描仪)读取数据。
您必须通过检查 hasNext()
是真还是假来读取输入( Scanner )
NoSuchElementException
是从 Scanner.next()
抛出的,如果您在到达数据流末尾时尝试读取数据。
而不是:
sc.next();
...
使用:
while(! sc.hasNext()) { }
sc.next();
...
Scanner.hasNext()
检查是否还有数据可读,while循环等待直到有更多数据可读才继续。
只需在程序结束时或再次使用之前执行 scanner.clear()
。
此代码已成功编译,但显示运行时错误和异常,因为扫描器中没有此类元素 class。读取测试用例后,应该是把输入作为字符串,但是却显示异常。
public class CandidateCode
{
public static void main(String args[] ) throws Exception
{
//Write code here
Scanner sc=new Scanner(System.in);
int testCase=sc.nextInt();
while(testCase>0)
{
//sc.next();
Scanner scan=new Scanner(System.in);
String temp="";
String res="";
for(int i=0;i<str.length();i++)
{
if(temp.indexOf(str.charAt(i))==-1)
temp=temp+str.charAt(i);
else
{
res=res+str.charAt(i);
}
}
char min='z';
for(int j=0;j<res.length();j++)
{
if(res.charAt(j)<min)
min=res.charAt(j);
}
System.out.println(min);
testCase++;
}
}
}
编译日志错误为:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at CandidateCode.main(CandidateCode.java:19)
NoSuchElementException
将被抛出,因为您正试图从数据到达末尾的输入(扫描仪)读取数据。
您必须通过检查 hasNext()
是真还是假来读取输入( Scanner )
NoSuchElementException
是从 Scanner.next()
抛出的,如果您在到达数据流末尾时尝试读取数据。
而不是:
sc.next();
...
使用:
while(! sc.hasNext()) { }
sc.next();
...
Scanner.hasNext()
检查是否还有数据可读,while循环等待直到有更多数据可读才继续。
只需在程序结束时或再次使用之前执行 scanner.clear()
。