0
private void addMember() {
    while (true) {
        String mNum = readLine("Please enter a membership number: ");
        if (mNum == null) break;
        Integer mNumAsInteger = Integer.parseInt(mNum);
        String mName = readLine("Please enter the member's name: ");
        members.put(mNumAsInteger, mName);
    }
}

private Map<Integer, String> members = new HashMap<Integer, String>();

代码的目的是不断添加成员,直到用户输入空白输入。

有没有办法将第一行更改为类似

Integer mNum = readInt("Please enter a membership number: ");

并以某种方式检测到空白输入?

4

3 回答 3

1

您可以使用 a Scanner,它提供了一个更简单的 API 用于从流中读取。

private static void addMember() {
    Scanner sc = new Scanner(System.in).useDelimiter("\n");
    while (true) {
        try {
            System.out.println("Please enter a membership number: ");
            int mNum = sc.nextInt();
            System.out.println("Please enter the member's name: ");
            String mName = sc.next();
            members.put(mNum, mName);
        } catch (Exception e) {
            break;
        }
    }
}

http://ideone.com/jhN3j

于 2012-05-14T15:57:49.690 回答
0

不确定是否最好,但也许您正在寻找:

try{
Integer mNum = Integer.parseInt(readLine("Please enter a membership number: "));
}catch (NumberFormatException e){
 System.out.println("Error parsing membership number");
}
于 2012-05-14T15:59:24.707 回答
0

你可以试试这个课程:http ://www.cs.kzoo.edu/GridPkg/GridPkgClassDocumentation/edu/kzoo/util/ValidatedInputReader.html

于 2012-05-14T16:02:29.130 回答