我对Java很陌生,在尝试检查用户输入的内容是否为文本(字符串)而不是数字时,我陷入了困境。 hasNext(),next(),nextLine()不一定要检查字符串,因此我不确定该如何完成。
import java.util.Scanner;
public class CalculateOne {
public static void main(String[] args) {
System.out.print("Enter a or b");
Scanner scan = new Scanner(System.in);
boolean isItString = scan.hasNextLine();
while (! isItString) {
System.out.print("Invalid Input! \n");
scan.next();
}
String type = scan.nextLine();
System.out.println("you chose "+type);
}
}
您需要使用hasNext(String)
或hasNext(Pattern)
方法。这些命令测试下一个标记(使用当前定界符设置)是否与正则表达式匹配。有相应的next
方法可以使用令牌。
详细信息在javadocs的Scanner
中。
所以剩下要做的就是“实现”正则表达式以匹配“非数字”标记。
将您的输入作为字符串,并检查输入是数字还是字符串。
static boolean isNumber(String s)
{
for (int i = 0; i < s.length(); i++)
if (Character.isDigit(s.charAt(i))
== false)
return false;
return true;
}