尝试运行程序时出现以下错误。这实际上是针对Hackerrank的“第六天让我们回顾”挑战的提交内容。
线程“ main”中的异常java.util.NoSuchElementException在 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("");
}
}
答案 0 :(得分:0)
尝试
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
答案 1 :(得分:0)
您的代码完全正确。 由于您不使用集合或数组,因此无需放置hasNext()方法 我刚刚测试了您的代码,它运行良好。 您的错误一定是出于其他原因