我是java的新手 我写了这个程序来显示航班信息
import java.io.*;
import java.util.Scanner;
class Main
{
public static void main(String args[])
{
int ticket;
String name,destination;
float fare;
char tclass;
Scanner in = new Scanner(System.in);
System.out.println("Enter Flight name : ");
name=in.nextLine();
System.out.println("Enter Ticket No : ");
ticket=in.nextInt();
System.out.println("Enter Flight Fare : ");
fare=in.nextFloat();
System.out.println("Enter Travelling Class : ");
tclass=in.next().charAt(0);
System.out.println("Enter Source : ");
String source=in.nextLine();
System.out.println("Enter Destination : ");
destination=in.nextLine();
System.out.println("Flight Details : ");
System.out.println("Flight Name : "+name);
System.out.println("Ticket No : "+ticket);
System.out.println("Flight Fare : "+fare);
System.out.println("Class : "+tclass);
System.out.println("Source : "+source);
System.out.println("Destination : "+destination);
}
}
但打印输出时出错。 源字段为空,目标字段具有源
的数据Flight Details :
Flight Name : Emirates
Ticket No : 43190215
Flight Fare : 19433.94
Class : C
Source :
Destination : Mumbai
这里mumbai实际上是源的值,但它会显示在目标字段
中答案 0 :(得分:2)
在您的程序中使用这段代码,
System.out.println("Enter Travelling Class : ");
tclass = in.next().charAt(0);
in.nextLine();
System.out.println("Enter Source : ");
String source = in.nextLine();
实际上next()
方法并没有消耗最后一个换行符,这就是您遇到此问题的原因。