重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.util.Scanner;
创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为马鞍山企业提供专业的成都做网站、网站制作,马鞍山网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
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);
}
}
//报错的代码是不可达代码,将return修改为break即可,如:
while(true)
{
try
{
Scanner input = new Scanner(System.in);
a=input.nextInt();
break;
}catch(Exception e)
{
System.out.println("erro is 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解除循环
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()+"不是一个合法的数字,请重新输入!");
}
}
你看明白了吗?