java - 我如何使(如果条件)只接受数字?
问题描述
我想把 if () 条件加长,这样用户只能输入数字,如果他输入字符串或字符,就会出现错误。
System.out.print("Determine the length of array> ");
int length = input.nextInt();
解决方案
您可以使用 java 正则表达式,它只看数字
^[0-9]*$
所以让我们检查一下这是否有效,
public static void main(String[] args) {
boolean valid = false;
String regexForNumbers = "^[0-9]*$";
Scanner scanner = new Scanner(System.in);
while (!valid) {
System.out.print("Input Value:");
String s = scanner.nextLine();
if(!s.matches(regexForNumbers)){
valid= false;
System.out.println("Not only Numbers, try again\n");
}else{
valid = true;
System.out.println("Only Numbers:"+ s);
}
}
}
所以如果用户输入只包含数字,执行就会结束,否则会一直要求用户输入,这个简单逻辑的输出就是。
Input Value:maneesha
Not only Numbers, try again
Input Value:maneesha123
Not only Numbers, try again
Input Value:123
Only Numbers:123
推荐阅读
- youtube-api - YouTube API:获取直播开始时间和当前长度
- mysql - 左连接两个表,如果两个表中都存在值,则保留右表中的最新值
- javascript - 我想制作一个清晰的搜索字段。我在哪里做错了?
- python-3.x - Jenkins Python解释器路径:Python解释器路径中不允许有空格
- android - getDatePicker() 作为未解析的参考
- javascript - 用户看到元素后发送 Ajax 请求
- swift - UIView-Encapsulated-Layout-Width 和 LayoutConstraint
- javascript - 排序以字母开头的数组字符串
- javascript - 使用三元运算符检查数组中的值
- amazon-web-services - 自助数据能力栈?