黑马程序员技术交流社区
标题:
JAVA为了不让键盘录入出bug,该怎么做的?
[打印本页]
作者:
SpiritsOfBlack
时间:
2015-12-16 09:33
标题:
JAVA为了不让键盘录入出bug,该怎么做的?
举个例子:
import java,out.Scanner;
calss Demo_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数,我们会输出它的2倍:");
int x = nextInt();
x *= 2;
System.out.println("x的2倍是:" + x);
}
}
键盘录入可以写任何数字、字母、符号,但是我们只限定了输入的是int类型的数字,如果输入其他的字母或者符号等等,就会报错,不会按照我们想要的结果输出。为了使这个代码更严谨,即使输入的不是我们规定的数据类型,也不会报错,只会输出“你输入的值不合法,请重新输入!”,直到输入规定的值才会输出结果。
记得好像是用try{}catch{}对吧?,该怎么用?新手提问,求大牛指导。
作者:
黑夜中那颗星
时间:
2015-12-16 11:13
import java.util.Scanner;
public class Demo_Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数,我们会输出它的2倍:");
while (true) {
String value = sc.next();// 先用字符串类型来接收输入的内容
if (value.matches("[\\d]+")) { //然后利用正则表达式判断输入的是否是数字
int x = Integer.parseInt(value); //把字符串转换成int类型
x *= 2;
System.out.println("x的2倍是:" + x);
break; //结束循环
}
else //不是数字就提示错误
System.out.println("格式错误! 请继续输入");
}
sc.close();
}
}
复制代码
作者:
sooul
时间:
2015-12-16 11:22
nextInt(),只会接受下一个你输入的字符或数字,所以你只要判断一下输入的东西是不是匹配的类型就可以了,详细可以看看楼上代码,
作者:
hrfhwy
时间:
2015-12-16 20:34
黑夜中那颗星 发表于 2015-12-16 11:13
这个程序写的很好,谢谢分享
作者:
乌合屁民
时间:
2015-12-16 21:47
haoliudeyangzi
作者:
尼玛大叔
时间:
2015-12-16 22:03
挺好的,加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2