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

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 に答える