![](/img/trans.png)
[英]how to take input of characters separated by space in java in hackerrank using scanner
[英]HackerRank Scanner Class Java
此代碼用於打印鏈表,並且在Eclipse中可以正常工作:-
import java.util.Scanner;
public class HackerAss {
static Scanner scan;
static Node head;
static Node current;
public static void main(String[] args) {
int q=1,count=0;
while(q==1){
scan = new Scanner(System.in);
q = scan.nextInt();
if(q==0)
break;
else{
int element = scan.nextInt();
if(count == 0)
current = new Node(element);
else{
head = new Node(element);
head.node = current;
current = new Node(element);
}
}
count++;
}
while(head!=null){
System.out.println(head.data);
head=head.node;
}
}
static class Node{
int data;
Node node;
public Node() {
data=0;
node=null;
}
public Node(int data) {
this.data=data;
node=null;
}
}}
但是在HackerRank中,它顯示錯誤:-
線程“主”中的異常java.util.NoSuchElementException
錯誤的原因是什么,解決方案是什么。 我有作業要提交。
您的問題來自您的代碼,而不是您的IDE。
首先,您應該定義一次掃描器:
while(q==1){
scan = new Scanner(System.in);
q = scan.nextInt();
...
}
這是一個非常糟糕的主意,因為您甚至都不知道流中是否有內容,因此您必須使用Scanner這樣的操作:
scan = new Scanner(System.in);
while(scan.hasNextInt()){
q = scan.nextInt();
...
}
之后, java.util.NoSuchElementException
來自於您兩次調用nextInt()的事實:
scan = new Scanner(System.in);
q = scan.nextInt();
...
int element = scan.nextInt();
輸入耗盡后,在文檔nextInt()
拋出java.util.NoSuchElementException
: https : //docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28%29
該錯誤來自nextInt()。 您必須通過以下代碼中的條件來避免這種情況
import java.util.Scanner;
public class HackerAss {
static Scanner scan;
static Node head;
static Node current;
public static void main(String[] args) {
int q=1,count=0;
scan = new Scanner(System.in);
while(q==1){
if(scan.hasNextInt() ) {
q = scan.nextInt();
}
if(q==0)
break;
else{
if(scan.hasNextInt() ) {
int element = scan.nextInt();
}
if(count == 0)
current = new Node(element);
else{
head = new Node(element);
head.node = current;
current = new Node(element);
}
}
count++;
}
while(head!=null){
System.out.println(head.data);
head=head.node;
}
}
static class Node{
int data;
Node node;
public Node() {
data=0;
node=null;
}
public Node(int data) {
this.data=data;
node=null;
}
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.