Java-字符串是否有类似于hasNextInt()或hasNextDouble()的方法?我想检查用户输入是否只是文本而不是数字
我对Java非常陌生,当我试图检查用户输入是否是文本、字符串而不是数字时,我被卡住了。hasNext,next,nextLine不一定要检查字符串,所以我不知道怎么做Java-字符串是否有类似于hasNextInt()或hasNextDouble()的方法?我想检查用户输入是否只是文本而不是数字,java,Java,我对Java非常陌生,当我试图检查用户输入是否是文本、字符串而不是数字时,我被卡住了。hasNext,next,nextLine不一定要检查字符串,所以我不知道怎么做 import java.util.Scanner; public class CalculateOne { public static void main(String[] args) { System.out.print("Enter a or b"); S
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);
}
}
您需要使用的是hasNextString或hasNextPattern方法。这些测试使用当前分隔符设置的下一个标记是否与正则表达式匹配。有相应的next方法用于使用令牌 有关详细信息,请参见扫描仪的 因此,您唯一要做的就是实现正则表达式以匹配您的非数字标记
您也可以调用next来获取下一个令牌,并测试它是否有数字。但这将消耗令牌。将您的输入作为字符串,并检查输入是数字还是字符串
static boolean isNumber(String s)
{
for (int i = 0; i < s.length(); i++)
if (Character.isDigit(s.charAt(i))
== false)
return false;
return true;
}