我需要这样做,以便当用户输入单词2而不是数字2时,它会告诉用户该数字需要是数字形式。
package monthly.mortgage.rate;
import java.util.Scanner;
class MonthlyMortgageRate {
public static void main(String[] args) {
double Amount;
double Rate;
double Months;
double outputNum1;
boolean doagain;
doagain = true;
Scanner in = new Scanner(System.in);
while (doagain) {
System.out.print("Enter loan amount:");
Amount = in.nextDouble();
System.out.print("Enter rate:");
Rate = in.nextDouble() / 100 / 12;
System.out.print("Enter year:");
Months = in.nextDouble() * 12;
outputNum1 = Rate * Amount / (1 - Math.pow(1 + Rate, -Months));
if (Amount <= 0)
System.out.println("You must enter positive numeric data!");
if (Rate <= 0)
System.out.println("You must enter positive numeric data!");
if (Months <= 0)
System.out.println("You must enter positive numeric data!");
else
System.out.printf("Monthly payment is: $ %.2f%n", outputNum1);
System.out.println("would you like to calculate again?(y/n)");
if (in.next().toLowerCase().equals("y"))
;
boolean y = doagain;
if (in.next().toLowerCase().equals("n"))
doagain = false;
boolean n = false;
}
}
}
答案 0 :(得分:-2)
我从你的问题中得到的是你想知道某人是否输入了一个字符串作为数字而不是int作为数字。基本上,您可以使用每个字母创建一个数组:
Array alphabet = {"a", "b"...}
现在,只需查看输入是否包含字母表中的任何字符......或者在我们的示例中为Array alphabet
。您可以使用.contains
for(int i =0; i < alphabet.length; i++)
{
if(inputString.contains(alphabet[i]))
{
return true;
}
}
您可以看看他们是否输入了任何字母或字符串......如two
而不是2
。
但......以下可能是一种更简单的方法:
你不想要一个字符串作为输入,对吗? 如果用户键入一个字符串而不是一个int,那么nextDouble()应抛出一个异常,以便你捕获。
因此,要接受您的输入,请使用try和catch,并捕获未输入字符串的用户的异常!
try{
}Catch(CATCH THE STRING){
System.out.println("You should put in a number!");
}