主题:[讨论]Java中输入String类型和int类型数据的先后顺序
刚才在pfan中回帖时,发现了个问题。
要求从console下输入一个String类型和一个int类型的数据,如先输入String类型的,没有错误;若要求先输入int类型的数据,再输入String类型的数据。就会有错误!
将源代码中的name = sc.nextLine();和age = sc.nextInt();的先后顺序调换后,就没有问题!
我的IDE是[color=FF0000]eclipse3.3[/color]
[color=FF0000]源代码如下:[/color]
/***
* 要求用户输入int,String等类型数据时,先输入String
*/
package test;
import java.util.Scanner;
class Cat {
private int age = 0;
private String name = null;
public void showMessage() {
System.out.println("The cat's name is " + name + "! It is " + age
+ " years old.");
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class InputAttation {
public static void main(String[] args) {
String name = null;
int age = 0;
// 定义输出流
Scanner sc = new Scanner(System.in);
// 提示用户输入,注意:先输入字符串,否则会有错误!
[color=000080][b]System.out.println("Input the age of the cat: ");
if(sc.hasNextInt())
age = sc.nextInt();
System.out.println("Input the name of the cat: ");
name = sc.nextLine();[/b] [/color] // 实例化类Cat
Cat cat = new Cat();
// 给属性赋值
cat.setAge(age);
cat.setName(name);
cat.showMessage();
}
}
要求从console下输入一个String类型和一个int类型的数据,如先输入String类型的,没有错误;若要求先输入int类型的数据,再输入String类型的数据。就会有错误!
将源代码中的name = sc.nextLine();和age = sc.nextInt();的先后顺序调换后,就没有问题!
我的IDE是[color=FF0000]eclipse3.3[/color]
[color=FF0000]源代码如下:[/color]
/***
* 要求用户输入int,String等类型数据时,先输入String
*/
package test;
import java.util.Scanner;
class Cat {
private int age = 0;
private String name = null;
public void showMessage() {
System.out.println("The cat's name is " + name + "! It is " + age
+ " years old.");
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class InputAttation {
public static void main(String[] args) {
String name = null;
int age = 0;
// 定义输出流
Scanner sc = new Scanner(System.in);
// 提示用户输入,注意:先输入字符串,否则会有错误!
[color=000080][b]System.out.println("Input the age of the cat: ");
if(sc.hasNextInt())
age = sc.nextInt();
System.out.println("Input the name of the cat: ");
name = sc.nextLine();[/b] [/color] // 实例化类Cat
Cat cat = new Cat();
// 给属性赋值
cat.setAge(age);
cat.setName(name);
cat.showMessage();
}
}