这就是我的工作方式,但却希望采用不同的方式。
System.out.print("Enter the car's Year, Make and Model: ");
String scyear = scan.nextLine();
String scmake = scan.nextLine();
String scmodel = scan.nextLine();
NewCar test = new NewCar(scyear, scmake, scmodel);
这就是我想要的:用户运行Java程序并询问:
Enter the car's Year, Make and Model:
然后我输入:
2011 Honda Civic
然后,它将使用我输入的空格作为分离要正确放入构造函数的变量的方法。它会将它们与我输入的单个1行字符串中的3个独立变量分开。
答案 0 :(得分:2)
String myCarData[]=scan.nextLine().split(" ");
NewCar test=new NewCar(myCarData[0],myCarData[1],myCarData[2]);
答案 1 :(得分:1)
您可以使用Scanner.next
方法,该方法从扫描程序中检索下一个完整令牌。这是文档的片段:
public String next()
查找并返回此扫描仪的下一个完整令牌。
由于方法过载,默认情况下由空格分隔,因此您可以执行此操作:
System.out.print("Enter the car's Year, Make and Model: ");
String scyear = scan.next();
String scmake = scan.next();
String scmodel = scan.next();
NewCar test = new NewCar(scyear, scmake, scmodel);
鉴于输入:
Enter the car's Year, Make and Model: 2011 Honda Civic
next
基本上会:
Enter the car's Year, Make and Model: 2011 Honda Civic
^^^^ ^^^^^ ^^^^^
它将从输入中获取 next 标记。致电next
将获得2011年,再次将给你本田,最后将给你思域。或者,您可以将行拆分为数组,并使用订阅进行检索,但速度可能较慢。
答案 2 :(得分:0)
不使用scan.nextLine()
,而是使用scan.next()
System.out.print("Enter the car's Year, Make and Model: ");
String scyear = scan.next();
String scmake = scan.next();
String scmodel = scan.next();
您输入的下三个内容(按空格分隔)将自动分配给scyear
,scmake
和scmodel
。在大多数情况下,它非常烦人,但在这种情况下,你可以使用它对你有利。输入X,Y坐标和纬度/经度时也很有用。