编写一个程序,在运行时接受并输出雇员详情。有关详情将包括雇员编号,姓名
和部门。如果用户输入的数据不完整或不正确,此程序应引发异常。输入的值应
符合以下条件:
1.雇员姓名应为字符;
2.雇员编号应为整数;
3.部门编号应为1至5之间的数字。import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;public class EmployeeData {
public EmployeeData(){
}
public static void main(String[] args){
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ir);
String name = null;
String enumber= null;
String dept = null;
//在各个while用接收输入的用户名,并验证是否为字符
outer1:
while(true){
try{
System.out.println("请输入您的用户名:");
name = br.readLine();
for(int i = 0;i<name.length();i++){
int b = (char)(name.charAt(i));
if(((b>64)&&(b<91))||((b>96)&&(b<123))){
break outer1;
}
}
System.out.println("您输入的格式不正确,请重新输入:");
}catch(IOException e){
e.getStackTrace();
}
}
outer2:
while(true){
try{
System.out.println("请输入您的雇员编号:");
enumber = br.readLine();
int num1 = Integer.parseInt(enumber);
break outer2;
}catch(NumberFormatException ie){
System.out.println("你输入的不是数字,请重新输入:");
ie.getStackTrace();
}catch(IOException ioe){
ioe.getStackTrace();
}
}
outer3:
while(true){
try{
System.out.println("请输入您的部门编号:");
dept = br.readLine();
int num2 = Integer.parseInt(dept);
if((0<num2)&&(num2<6)){
break outer3;
}else{
System.out.println("您输入的数字不符合格式,请输入大于0小于6的数:");
}
//br.close();
//ir.close();
}catch(NumberFormatException re){
System.out.println("你输入的数不符合格式需求请重新输入一个大于0小于6的数");
re.getStackTrace();
}catch(IOException ee){
ee.getStackTrace();
}
/*finally{
try{
br.close();
ir.close();
}catch(IOException io){
io.getStackTrace();
}
}*/
}
System.out.println("雇员姓名信息:");
System.out.println("雇员姓名:"+name);
System.out.println("雇员编号:"+enumber);
System.out.println("雇员部门:"+dept);
}
}
第一个while语句没有完全实现需求,求那位高手指点一下,小弟不胜感激!!!
和部门。如果用户输入的数据不完整或不正确,此程序应引发异常。输入的值应
符合以下条件:
1.雇员姓名应为字符;
2.雇员编号应为整数;
3.部门编号应为1至5之间的数字。import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;public class EmployeeData {
public EmployeeData(){
}
public static void main(String[] args){
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ir);
String name = null;
String enumber= null;
String dept = null;
//在各个while用接收输入的用户名,并验证是否为字符
outer1:
while(true){
try{
System.out.println("请输入您的用户名:");
name = br.readLine();
for(int i = 0;i<name.length();i++){
int b = (char)(name.charAt(i));
if(((b>64)&&(b<91))||((b>96)&&(b<123))){
break outer1;
}
}
System.out.println("您输入的格式不正确,请重新输入:");
}catch(IOException e){
e.getStackTrace();
}
}
outer2:
while(true){
try{
System.out.println("请输入您的雇员编号:");
enumber = br.readLine();
int num1 = Integer.parseInt(enumber);
break outer2;
}catch(NumberFormatException ie){
System.out.println("你输入的不是数字,请重新输入:");
ie.getStackTrace();
}catch(IOException ioe){
ioe.getStackTrace();
}
}
outer3:
while(true){
try{
System.out.println("请输入您的部门编号:");
dept = br.readLine();
int num2 = Integer.parseInt(dept);
if((0<num2)&&(num2<6)){
break outer3;
}else{
System.out.println("您输入的数字不符合格式,请输入大于0小于6的数:");
}
//br.close();
//ir.close();
}catch(NumberFormatException re){
System.out.println("你输入的数不符合格式需求请重新输入一个大于0小于6的数");
re.getStackTrace();
}catch(IOException ee){
ee.getStackTrace();
}
/*finally{
try{
br.close();
ir.close();
}catch(IOException io){
io.getStackTrace();
}
}*/
}
System.out.println("雇员姓名信息:");
System.out.println("雇员姓名:"+name);
System.out.println("雇员编号:"+enumber);
System.out.println("雇员部门:"+dept);
}
}
第一个while语句没有完全实现需求,求那位高手指点一下,小弟不胜感激!!!
解决方案 »
- Thread的getContextClassLoader()
- java程序,帮忙看下...有耐心又有爱心的前辈请进!
- 求!尚学堂视频 HTML & CSS & JAVASCRIPT
- 急:::::如何配置TOMCAT5.0+struts-1.3.8
- 高手请听题:JSP出错页面中什么时候出现“ROOT CAUSE”?
- 紧急求助,在线等!!!
- 帮我看看我的问题~~~~~
- 关于在JLabel上放的图片在鼠标拖动时候不仅仅一闪一闪的,而且有时候图片会消失(有代码)50分~
- 有没有做蚁群算法解决VRPTW问题的论文的,我想要相关的程序代码,急用100分!
- 有沒有人用過jbuiler裡的queryDataSet,能不能告訴我怎麼用查詢一個寫好的SQL語句?
- 依旧是jasperreports 问题,iReport title段的内容为什么要占用正一页?$F,$P{},V{}的字段如何在java里面给它们赋值?
- 图形界面显示问题,谢谢!
if ("sdadDSDS".matches("[a-zA-Z]+")) {
System.out.println("ok");
}
如: Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("abcd18d");
if(m.find()){
System.out.println("含有数字!");
}else{
Sytem.out.println("全是字母!");
}
\\d+判断字母
[a-zA-Z]+混合
\\w+用正则比较简单