![](/img/trans.png)
[英]nextLine ignoring input, but next() don't - why have i clear scanner?
[英]What's the best way to read input in Java, especially for consecutive strings? I don't know when to use next() and nextLine()
我在一個非常簡單的代碼中收到此錯誤,但無法弄清楚。
另外,在這種情況下,請建議什么是讀取兩個連續字符串的最佳方法。 我遇到InputMismatchException,我認為這可能是原因。
奇怪的是,代碼也無法接受整數。 讀取整數時出現異常。
我不確定何時使用Scanner.next()和Scanner.nextLine()。
import java.util.Scanner;
class Customer
{
private int id;
private String name;
private String city;
private double salary;
Customer(){}
Customer(int id, String name, String city, double salary)
{
this.id=id;
this.name=name;
this.city=city;
this.salary=salary;
}
public int getId(){
return id;
}
public String getName(){
return name;
}
public String getCity(){
return city;
}
public double getSalary(){
return salary;
}
public void setId(int id){
this.id=id;
}
public void setName(String name){
this.name=name;
}
public void setCity(String city){
this.city=city;
}
public void setSalary(double salary){
this.salary=salary;
}
}
public class Solution{
public static void main(String []args){
Scanner in = new Scanner(System.in);
Customer c = new Customer();
int id = in.nextInt();
String name = in.next();
String city = in.next();
double sal = in.nextDouble();
c.setId(id);
c.setName(name);
c.setCity(city);
c.setSalary(sal);
System.out.println(c.getId() + " " + c.getName() + " " + c.getCity() + " " + c.getSalary());
}
}
輸入項
1
ABC
MH
2000.25
堆棧跟蹤
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Solution.main(Solution.java:61)
java.util.Scanner.next();
返回一個單詞。 即閱讀直到看到換行符或空格。
java.util.Scanner.nextLine();
返回一行。 即閱讀整行。
兩者都返回字符串。
如果要同時讀取多個字符串,請使用.nextLine();
,但是nextLine()
和其他讀取方法存在沖突。
即在此代碼
Scanner sc = new Scanner (System.in);
int A = sc.nextInt();
String S = sc.nextLine();
S將是一個空字符串。 您可以通過在程序中添加另一個.nextLine()
吞下newLine字符來解決此問題。 一些詳細信息在注釋中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.