package SteppingStone;
import java.util.Scanner;
public class SteppingStone2_IngredientCalculator {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String nameOfIngredient = "";
double numberCups = 0.0;
int numberCaloriesPerCup = 0;
double totalCalories = 0.0;
System.out.println("Please Enter Ingredient Name: ");
nameOfIngredient = scnr.nextLine(); //In case ingredient is more than one word long.
System.out.println("Please enter the number of cups of " + nameOfIngredient + " required: ");
numberCups = scnr.nextDouble();
/* ^^ here I want to make sure that the value entered
is numeric like 2 instead of two
and I want to apply this to the later value
numberCaloriesPerCup.
*/
System.out.println("Please enter the number of calories per cup of " + nameOfIngredient + " : ");
numberCaloriesPerCup = scnr.nextInt();
totalCalories = numberCups * numberCaloriesPerCup;
System.out.println(nameOfIngredient + " uses " + numberCups + " cups and this amount contains " + totalCalories + " total calories.");
}
}
您可能希望将其接受为字符串,并检查它是否是数字的或不使用String方法。如果格式正确,您可以向前移动,或者在显示错误时重新提示用户输入正确的值。
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String nameOfIngredient = "";
double numberCups = 0.0;
int numberCaloriesPerCup = 0;
double totalCalories = 0.0;
System.out.println("Please Enter Ingredient Name: ");
nameOfIngredient = scnr.nextLine(); //In case ingredient is more than one word long.
System.out.println("Please enter the number of cups of " + nameOfIngredient + " required: ");
String numCups = scnr.next();
while(!numCups.chars().allMatch( Character::isDigit ))
{
System.out.println("Incorrect format for number of cups. Please enter numeric values");
numCups = scnr.next();
}
numberCups = Double.parseDouble(numCups);
System.out.println("Please enter the number of calories per cup of " + nameOfIngredient + " : ");
numberCaloriesPerCup = scnr.nextInt();
totalCalories = numberCups * numberCaloriesPerCup;
System.out.println(nameOfIngredient + " uses " + numberCups + " cups and this amount contains " + totalCalories + " total calories.");
}
或者,您也可以使用try-catch语句来执行此操作。我相信这是解析双值的更好方法
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String nameOfIngredient = "";
double numberCups = 0.0;
int numberCaloriesPerCup = 0;
double totalCalories = 0.0;
System.out.println("Please Enter Ingredient Name: ");
nameOfIngredient = scnr.nextLine(); //In case ingredient is more than one word long.
System.out.println("Please enter the number of cups of " + nameOfIngredient + " required: ");
String numCups = scnr.next();
while(numberCups==0.0)
{
try {
numberCups = Double.parseDouble(numCups);
} catch (NumberFormatException e) {
System.out.println("Incorrect format for number of cups. Please enter numeric values");
numCups = scnr.next();
}
}
System.out.println("Please enter the number of calories per cup of " + nameOfIngredient + " : ");
numberCaloriesPerCup = scnr.nextInt();
totalCalories = numberCups * numberCaloriesPerCup;
System.out.println(nameOfIngredient + " uses " + numberCups + " cups and this amount contains " + totalCalories + " total calories.");
}
我正试图编写一个java程序,将货币转换作为一个类赋值。我的代码几乎完全按照我希望的方式工作。执行时,它将要求用户输入日元对美元的汇率。输入任意一个数字,它就会正常工作。 但是,它会提示用户输入他们想要兑换成日元的美元金额。同样,这个想法是输入任何 但如果你在下一个空行输入一个数字,它就会进行转换!你甚至可以用空格输入数字:10 20 50 100。。。它将在单独的行中转换所有这些内容。 我只是想
当用户输入字符串(例如“”)时,程序应该给出输出“”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息
问题内容: 因此,第一个和最后一个输入应该是字母,并且它们之间应该只有数字。这是我的代码: 问题答案: 您可以使用和 。 如果中的文本不符合这三个条件之一,则显示旧文本。 完整的应用 **更新:更改为。@kleopatra表示这是实现此目标的正确方法。
这似乎是件很简单的事情,但我在任何地方都找不到。我想要一个简单的程序(比如自动热键,但我找不到使用自动热键的方法),当我按下某个键时,它会冻结我的键盘和鼠标(无论我当时按什么键,即使我释放了实际的键/按钮),并将其冻结,直到我再次按下该键(选择的键从未被其他程序视为按下)。 我只是希望这样,如果游戏希望我按住一些按钮,我可以按下按钮,按下指定的键,松手,然后在我应该松开按钮的时候再次按下键。
问题内容: 我试图制作一个采用用户输入的多个名称的,直到插入单词为止,但我不确定如何使用。如何实现呢? 问题答案:
我希望“请输入一个带有字母S的句子”循环,直到用户输入字母“S”