回 帖 发 新 帖 刷新版面

主题:[讨论]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();
    }
}



回复列表 (共1个回复)

沙发


问题已经解决!
在读入int类型数据后,把它转换为Integer类型对象。

核心代码如下:
age = Integer.parseInt(sc.nextLine());


             [em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册