Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我请求双击时,如何阻止用户输入字符串或字符?_Java_Filter_Double - Fatal编程技术网

Java 当我请求双击时,如何阻止用户输入字符串或字符?

Java 当我请求双击时,如何阻止用户输入字符串或字符?,java,filter,double,Java,Filter,Double,所以当我做这样的事情的时候。我试图找出如何阻止用户简单地输入字符或字符串并产生运行时错误。我不确定如何过滤此处的输入: System.out.println("Please enter the degree of difficulty" + " for this dive"); while(degreeOfDifficulty > 3.8 || degreeOfDifficulty < 1.2) {

所以当我做这样的事情的时候。我试图找出如何阻止用户简单地输入字符或字符串并产生运行时错误。我不确定如何过滤此处的输入:

      System.out.println("Please enter the degree of difficulty"
               + " for this dive");

       while(degreeOfDifficulty > 3.8 || degreeOfDifficulty < 1.2)
       {
            degreeOfDifficulty = scanner.nextDouble();
       }
System.out.println(“请输入难度”
+“本次潜水”);
而(难度度>3.8 | |难度度<1.2)
{
degreeOfDifficulty=scanner.nextDouble();
}

如果在此处输入字符或字符串,显然会产生错误。请帮忙!谢谢。

您可以对while循环设置一个条件

boolean invalidInput = false;
while(!invalidInput && (degreeOfDifficulty > 3.8 || degreeOfDifficulty < 1.2))
{

    try {
        degreeOfDifficulty = scanner.nextDouble();
        invalidInput = false;
    } catch (Exception e) {
        System.out.println("Your entry was invalid, please enter a double.");
        invalidInput = true;
    }
}
boolean invalidInput=false;
而(!invalidInput&(困难度>3.8 | |困难度<1.2))
{
试一试{
degreeOfDifficulty=scanner.nextDouble();
无效输入=假;
}捕获(例外e){
System.out.println(“您的输入无效,请输入双精度。”);
无效输入=真;
}
}

最简单的方法是使用try and catch

使用
扫描仪。hasNextDouble()
而不是
try…catch

它给出输入中的下一个标记是否为有效的
double
。然后,您可以使用
scanner.nextDouble()
获取令牌,也可以使用
scanner.next()
忽略令牌

这个帮助了我

创建一个布尔方法,如下所示

private boolean preventNonestring(String str) {
    Pattern p = Pattern.compile("[^a-z A-Z]");
    return p.matcher(str).find();
}
然后使用如下方法

if(preventNonestring(yourtext)){ 
 //Do something here when true
}else{ 
//Your error message here when false

 }
您可以使用模式

模式p=模式。编译(“[^a-z a-z]”)

然后检查所需字符是否有字符
p、 匹配器(str.find()


还可以使用try-and-catch避免运行时错误

,或者使用hasNextDouble()检查被否决的文档,因为问题不太清楚。请查看Java异常处理。谷歌“Java:如何处理异常”。