java中实现用户输入格式错误后,提示用户重新输入,以用户输入负数的时候提示错误并重新输入案例为例,代码如下:
创新互联公司服务项目包括禹王台网站建设、禹王台网站制作、禹王台网页制作以及禹王台网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,禹王台网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到禹王台省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
public static int a = 0;
public static void main(String[] args) {
while (true) {
try {
a = getStr();
if (-1 == a) {
//用户输入负数时候,提醒用户输入正确的格式。
throw new IO Except io n("请输入大于-1的数");
}else{
break;
}
}
// 这个地方实现IO异常抓取
catch (IOException e) {
//抓取上面提示的错误,如果上面报错,证明用户输入格式不符合,这里实现重新输入。
System.out.println("erro is a,请从新输入:");
}
}
System.out.print(a);
Test.prints();
a = a + 0;
}
public static int getStr(){
//获取用户输入的正确数值
Scanner input = new Scanner(System.in);
a = input.nextInt();
return a;
}
public static void prints() {
//把用户输入的数值显示出来
System.out.println(a);
}
用
循环结构
和catch
比如
Scanner scanner = new Scanner(System.in);
System.out.println("请输入出发时间(如19:12):");
while(b==false){
str=scanner.next();
try {
str1=str.split(":");
h1=Integer.parseInt(str1[0]);
m1=Integer.parseInt(str1[1]);
b=true;
} catch (Exception e) {
System.out.println("请输入正确的格式:");
}
}这是我以前写的一个小程序
用来求两个时间的差
输入两个数字
中间用
:
分开并存入str中
然后在try中分割str
如果格式有误则会输出格式有误然后再次循环
直至格式正确让b=true解除循环
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
String s = "";
String regex = "[\u4E00-\u9FA5]+";
Scanner input;
while(true) {
System.out.println("请输入一些汉字:");
input = new Scanner(System.in);
try {
s = input.next();
if(!s.matches(regex)) throw new Exception();
} catch(Exception e) {
System.out.println("您输入的不是纯汉字!");
continue;
}
break;
}
System.out.println("您输入的是:" + s);
}
}
java语言提供标准键盘输入格式化包装类Scanner类,可以输入数字
如果数字输入错误,如何重新输入呢?
代码如下:
Scanner in =new Scanner(System.in);
int i = 0;
while(true){
System.out.println("请输入一个合法的数字:");
if (in.hasNext()){//判断输入内容是否是数字
i = in.nextInt();//是数字取出赋值给i
break;
}else{
//输入的内容不是数字,通过next()方法取出内容 才能重新输入
System.out.println("你输入的内容in.next()+"不是一个合法的数字,请重新输入!");
}
}
你看明白了吗?