导航:首页 > 编程语言 > 重新输入java

重新输入java

发布时间:2024-02-05 02:26:00

A. java基础,关于流程控制的问题:输入错误,提示错误并且重新输入。 这个快把我整崩溃了,请大家帮帮我

题主的问题大体就是如何判断用户的输入是否合法。这里最方便的就是使用正则表达式(Regular Expression,简称 Regex)。


正则表达式是一个字符串,它代表的是一定的字符串模式(比如邮箱的模式就是 "数字或字母 + @ + 数字或字母 + . + 顶级域名名称"),当用户输入一个字符串时,符合这个模式的字符串会通过验证,而不符合的则会匹配失败。现在几乎所有网站的邮箱密码身份证号等的验证都会使用正则表达式。


Java 的 String 类自带有一个 matches 方法提供了简单的正则表达式匹配功能,只需使用这个方法就可以完成你要求的匹配任务。代码如下:


importjava.util.Scanner;

publicclassMyTest{

//用于匹配身份选择和收入的正则表达式
privatefinalStringIDENTITY_REGEX="[0-2]";
privatefinalStringINCOME_REGEX="[0-9]*\.?[0-9]*";

//代表身份和收入的字符串
privateStringstatus_string;
privateStringincome_string;

//转换为int和double后的身份和收入
privateintstatus;
privatedoubleincome;

publicvoidComputTax(){

Scannerinput=newScanner(System.in);

//一直循环直到到达break语句退出
while(true){
System.out.println("0-单身纳税人,1-已婚共同纳税人,2-已婚单独纳税人"+
" "+"请选择你要纳税的身份:");

//读取用户输入的原始字符串并与正则表达式相匹配
status_string=input.nextLine();
//匹配失败会返回while一开始
if(!status_string.matches(IDENTITY_REGEX)){
System.out.println("输入错误,只能输入0~2之间的数");
continue;
}

//匹配成功则会将输入转换为整数并退出循环
status=Integer.parseInt(status_string);
break;
}

//同理
while(true){

System.out.println("请输入你的收入:");

income_string=input.nextLine();

if(!income_string.matches(INCOME_REGEX)){
System.out.println("收入输入有误,请重新输入");
continue;
}

income=Double.parseDouble(income_string);
break;

}

//输出相应的税收
if(status==0){

//使用printf保留两位小数,不然double输出的精度太多影响可读性
System.out.printf("你选择的身份是单身纳税人 你应当缴纳的税收为:%.2f元 ",
income*0.1);

}elseif(status==1){

System.out.printf("你选择的身份是已婚共同纳税人 你应当缴纳的税收为:%.2f元 ",
income*0.2);

}else{

System.out.printf("你选择的身份是已婚单独纳税人 你应当缴纳的税收为:%.2f元 ",
income*0.3);

}
}

publicstaticvoidmain(String[]args){

System.out.println("------------------欢迎使用纳税查询--------------------");
MyTestmyTest=newMyTest();
myTest.ComputTax();


}

}


运行结果为:



有关正则表达式的写法,请参考

http://deerchao.net/tutorials/regex/regex.htm

阅读全文

与重新输入java相关的资料

热点内容
华为服务器有什么好 浏览:699
程序员和测试之间的关系 浏览:945
加密蚊帐什么意思 浏览:149
javalistclear 浏览:607
哪个app上民宿多靠谱 浏览:827
重庆服务器租用哪里有云服务器 浏览:453
土星模拟器文件夹 浏览:902
文件夹文件袋文件盒 浏览:695
云服务器打开f8指令 浏览:243
盈透证券加密币 浏览:72
阿里云服务器初始密码怎么修改 浏览:266
服务器怎么设定公用网络 浏览:99
程序员自己尝尿检测出糖尿病 浏览:593
打印添加pdf 浏览:932
苹果解压专家账号 浏览:844
度晓晓app为什么关闲 浏览:228
net文件是伪编译码吗 浏览:149
伴随矩阵的matlab编程 浏览:63
单片机和h桥是什么意思 浏览:314
51单片机光控设计论文 浏览:653