如何修复运行时错误-线程“main”java.util.NoSuchElementException中的异常
Posted
技术标签:
【中文标题】如何修复运行时错误-线程“main”java.util.NoSuchElementException中的异常【英文标题】:How to fix runtime error - Exception in thread "main" java.util.NoSuchElementException 【发布时间】:2019-03-30 05:47:26 【问题描述】:我在尝试运行我的程序时遇到以下错误。这实际上是 Hackerrank 的“第 6 天让我们回顾”挑战的提交。
线程“main”中的异常 java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) 在 java.util.Scanner.next(Scanner.java:1371) 在 Solution.main(Solution.java:10)
这是我的代码:
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i=0; i<=T; i++)
String S = sc.next();
for(int j=0; j<S.length(); j++)
if(j%2==0)
System.out.print(S.charAt(j));
System.out.print(" ");
for(int r=0; r<S.length(); r++)
if(r%2!=0)
System.out.print(S.charAt(r));
System.out.println("");
【问题讨论】:
【参考方案1】:试试这个
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i=0; i<=T; i++)
if(!sc.hasNext()) break;
String S = sc.next();
for(int j=0; j<S.length(); j++)
if(j%2==0)
System.out.print(S.charAt(j));
System.out.print(" ");
for(int r=0; r<S.length(); r++)
if(r%2!=0)
System.out.print(S.charAt(r));
System.out.println("");
没有下一个元素时抛出java.util.NoSuchElementException。为避免这种情况,您应该使用 hasNext() 进行检查。
阅读本文了解更多详情:https://www.tutorialspoint.com/java/util/scanner_hasnext.htm
【讨论】:
这里是例外的文档:docs.oracle.com/javase/8/docs/api/java/util/… 这是一个已经回答的问题:***.com/questions/19106753/… 我认为这是重复但不确定【参考方案2】:您的代码非常好。 无需使用 hasNext() 方法,因为您不使用集合或数组 我刚刚测试了你的代码,它运行良好。 你的错误一定是因为别的原因
【讨论】:
以上是关于如何修复运行时错误-线程“main”java.util.NoSuchElementException中的异常的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase 进行 iOS 开发时如何修复致命错误?
如何修复 ibtool 失败并出现 Main.storyboard 错误:shouldBeArchived 无法识别
如何修复pyinstaller中的no dbm clone found错误