Java 中的输入验证
验证是根据特定约束检查用户输入或数据库中的值的过程。应用验证以减少程序运行实际业务逻辑以及在用户输入中查找问题所花费的时间。该过程提高了性能,因此在失败的情况下会导致任何进一步的调试会话。
在 Java 代码中,我们使用 Scanner
类获取用户输入。Scanner 类有多种方法可以帮助验证输入内容。
下面是解释这些方法的代码块。
import java.util.Scanner;
public class InputValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter any text: ");
while (!scanner.hasNext("quit")) {
System.out.println(scanner.hasNextInt() ? "The Input text is int: " + scanner.nextInt()
: scanner.hasNextLong() ? "The Input text is long: " + scanner.nextLong()
: scanner.hasNextDouble() ? "The Input text is double: " + scanner.nextDouble()
: scanner.hasNextBoolean() ? "The Input text is boolean: " + scanner.nextBoolean()
: "The Input text is String: " + scanner.next());
}
}
}
在上面的代码块中,创建了 Scanner
类的一个实例。使用 new 关键字的构造函数调用采用 Input Stream 参数,例如 System.in
。
现在开始对 Scanner 实例进行实际工作。首先,在 while 条件中,应用检查以给出终止条件。该表达式使用 Scanner 类 hasNext
方法。该方法采用与输入标记匹配的模式。并检查输入是否是 quit
文本以外的任何内容。当 Scanner 对象关闭时,hasNext
方法会抛出 IllegalStateException
。
现在,当块被启动时,使用 hasNextInt
方法验证输入。只有当输入的文本是 int
值时,它才返回 true。使用 nextInt
方法从控制台将输入文本作为 int
扫描并打印在控制台上。nextInt()
方法在文本与整数正则表达式不匹配时抛出 InputMismatchException
,当 Scanner 实例关闭时抛出 IllegalStateException
。
现在整个检查块都写在嵌套的三元
语句中。如果第一个条件被评估为假,则应用另一项检查。hasNextDouble
方法将文本解释为 double 并在匹配时返回 true。nextDouble()
方法从标准输出返回一个双精度值,并在控制台中打印相同的值,否则为下一次检查而移动。nextDouble()
方法在来自控制台的下一个标记与 Float Regex 不匹配时抛出 InputMismatchException
,当 Scanner 实例关闭时抛出 IllegalStateException
。
另一项检查是使用 hasNextBoolean
方法。此方法检查 boolean
值,真或假。如果返回值是布尔值 true,则使用 nextBoolean()
来获取控制台输入并将其打印到输出屏幕。否则,它继续使用三元运算符 else 部分。nextBoolean
方法在下一个标记没有找到布尔值时抛出 InputMismatchException
,当 Scanner 实例关闭时抛出 IllegalStateException
。
遵循相同的模式,使用 next
方法验证输入。该方法成为 while 输入检查部分的最后一个条件。该方法从控制台搜索并返回整个前面的文本。该功能可能会在等待输入扫描时阻止控制台输出。该方法始终返回一个字符串值。评估也将特殊字符视为字符串并在输出中打印。与其他方法一样抛出相同的异常。如果 Scanner 已关闭,则说 IllegalStateException
,或者在没有更多令牌可用时说 NoSuchElementException
。
下面是上述验证代码的输出块。
Enter any text:
--
The input text is String: --
67
The input text is int: 67
1234567890000000
The input text is long: 1234567890000000
true
The input text is boolean: true
FALSE
The input text is boolean: false
90.08939782639
The input text is double: 90.08939782639
hi
The input text is String: hi
quit
相关文章
Java 中的计数器
发布时间:2023/11/16 浏览次数:177 分类:Java
-
它描述了 Java 中计数器变量的使用今天我们将讨论 Java 中的 counter 变量。在接下来的部分中,我们将看到如何使用 counter 变量。
Java 中 static 变量和 final 变量之间的区别
发布时间:2023/11/16 浏览次数:143 分类:Java
-
它显示了 Java 中静态变量和最终变量之间的区别。此外,将通过代码示例讨论这两个变量的使用。本文展示了 static 和 final 关键字之间的区别。让我们以表格格式和工作示例讨论差异。
在 Java 中设置 JAVA_HOME 变量
发布时间:2023/11/16 浏览次数:149 分类:Java
-
本文介绍如何在 Java 中设置 java_home 变量。在本文中,我们将学习如何在 windows 中设置 JAVA_HOME 变量。Java_Home 是一个引用变量,
在 Java 中强制转换变量
发布时间:2023/11/16 浏览次数:100 分类:Java
-
本文介绍如何在 Java 中强制转换变量。本文介绍如何在 Java 中强制转换变量或将变量转换为另一种类型。转换用于在编程语言中将一个值/变量转换/转换为另一种类型。
在 Java 中打印表格
发布时间:2023/11/16 浏览次数:160 分类:Java
-
这篇文章说明了如何在 Java 中打印表格要在 Java 中以表格结构打印任何信息,我们可以使用 java.io.PrintStream 类的 printf() 或 format() 方法。
Java system.out.println() 方法
发布时间:2023/11/16 浏览次数:184 分类:Java
-
这篇文章就是要了解 system.out.println() 方法在 Java 中是如何工作的。本文介绍了 System.out.println() 方法在 Java 中的工作原理,并列出了一些示例代码来理解该主题。
在 Java 中打印变量
发布时间:2023/11/16 浏览次数:149 分类:Java
-
本文讨论了在 Java 中打印变量的三种方法。我们还讨论了在 Java 中打印变量的各种方法的优缺点。我们可以使用变量将数据存储在计算机程序中。变量是我们执行 Java 程序时保存值的内存区域的
在 Java 中检查某个字符是否是数字
发布时间:2023/11/16 浏览次数:95 分类:Java
-
如何在 Java 中检查某个字符是否为数字。我们可以使用一个简单的内置方法来检查 Java 中的某个字符是否为数字。让我们深入了解一下。