1

私はこれが死に至るまで求められたことを知っていますが、私はまだ私のようなケースを検索して見つけていないので、私は尋ねようと思いました...私はここにこの小さなコードを持っています...

System.out.print("What would you like the name of your new recipe to be? ");
        Recipe tempRecipe = new Recipe(name);
        name = scan.nextLine();
        scan.nextLine();
        tempRecipe.setName(name);

        System.out.print("How many ingredients does this recipe have? ");
        ingredientCount = scan.nextInt();
        scan.nextLine();

明らかに、printlnステートメントが同じ行にあり、入力を許可しないという問題に遭遇していたので、問題を解決するためにそのscan.nextLine()を投入しました。しかし今、問題は、何かを読んだときに、nextLine() が多すぎるために空白になることです! name = scan.next() に変更すると、1 つの単語しか読み取れず、必要に応じて 1 つまたは 2 つの単語の両方を無差別に読み取ることができる必要があります。行

Ingredient tempIngredient = new Ingredient(name, quantity, null);

            System.out.print("Enter the name of ingredient number " + (i+1) + ": ");
            name = scan.nextLine();
            tempIngredient.setName(name);

            System.out.print("Enter the quantity of ingredient number " + (i+1) + ": ");
            quantity = scan.nextDouble();
            scan.nextLine();
            tempIngredient.setQuantity(quantity);

            System.out.print("Enter the unit of measurement of ingredient number " + (i+1) + ": ");
            unit = scan.nextLine();
            tempIngredient.setUnit(UnitOfMeasurement.valueOf(unit));

必要に応じて、tempRecipes 名と tempIngredients 名の両方が 1 つまたは 2 つの単語を保持できる必要があります。

4

1 に答える 1

1

の後でなく、のscan.nextLine()後にのみエクストラを呼び出します。エクストラを使用するアイデアは、改行文字にスキップして次の行に移動することです (それを行わないため)。scan.nextInt()scan.nextLine()scan.nextLine()scan.nextInt()

nextXXX の後に nextLine を使用する場合のスキャナーの問題を参照してください。

于 2013-02-14T01:50:17.087 に答える