Java 正在检查用户输入的字符串

Java 正在检查用户输入的字符串,java,string,input,Java,String,Input,如何检查以确保用户的输入仅为字符串 System.out.println("What kind of crust would you like?"); crust = scan.next(); while( !crust.equals(scan.hasNext())) <===(PROBLEM, THIS DOES NOT WORK) { System.out.println("Pick a valid choice.");

如何检查以确保用户的输入仅为字符串

System.out.println("What kind of crust would you like?");
     crust = scan.next();
     while( !crust.equals(scan.hasNext())) <===(PROBLEM, THIS DOES NOT WORK)
      {
         System.out.println("Pick a valid choice.");
         crust = scan.next
System.out.println(“您想要什么样的外壳?”);
外壳=scan.next();

当(!crust.equals(scan.hasNext())时,扫描仪将使用
.next()
方法读取字符串。下一个标记将自动以字符串形式读取。如果在程序请求外壳时输入类似123的内容,外壳变量将保存字符串“123”,而不是数字123

while循环不起作用,因为
.hasNext()
函数返回一个布尔值,而外壳始终是一个字符串

如果您想确保“外壳”没有数字字符,可以使用正则表达式,或者更简单地说,遍历字符串的每个字符并检查字符是否为数字

boolean containsNumber = false;
for (int i = 0; i < crust.length(); i++) {
    if (Character.isDigit(crust.charAt(i))) {
        containsNumber = true;
        break;
    }
}
boolean containsNumber=false;
对于(int i=0;i

如果字符串包含数字,CONTAINSUMBER布尔值将为true,如果它不包含数字,则为false。

外壳已经是一个字符串,无需检查它
!等于(scan.hasNext())
???????你们想干什么?伙计们,读这个问题。3.评论毫无意义或是糟糕的解决方案<代码>扫描仪#下一步
返回一个
字符串
。不需要
instanceof
。您必须重新构造代码以处理containsNumber布尔值。尝试将我的代码作为一个单独的函数添加,该函数返回一个布尔值,然后添加一个if语句来检查“外壳”字符串是否包含数值。