第八章 常用类 习题

本文通过三个实战案例,探讨了Java编程中的字符串验证、数据类型转换及枚举应用技巧。首先,介绍了一个验证用户名的有效性的方法,确保其不为空、长度超过6且不含数字。其次,演示了如何将键盘输入的年龄、分数和日期字符串转换为相应的整数、浮点数和日期类型,并在控制台上显示。最后,提供了一个根据交通信号灯颜色控制汽车行为的示例,采用枚举和switch结构实现。
摘要由CSDN通过智能技术生成

8、常用类

作业

  1. 验证键盘输入的用户名不能为空,长度大于6,不能有数字。

​ 提示:使用字符串String类的相关方法完成

​ 可以使用Scanner的nextLine()方法,该方法可以接口空的字符串。

public class TT {
    public static void main(String[] args) {
    	
    	  Scanner Input = new Scanner(System.in);
    	  Boolean flage= true;
    	  
    	  while(flage){
    		  System.out.print("请输入字符串:");
        	  String str = Input.nextLine();
    	  if(str.equals("")){
    		  System.out.print("字符串为空,请重新输入\n");
    		
    	  }else if(str.length()<6){
    		  System.out.print("字符串长度小于6,请重新输入\n"); 
    	
    	  }else {
    		  if(HasDigit(str)){
    			  System.out.print("字符串包含数字,请重新输入\n");
    			  continue;
    		  }
    		  else{
    			  System.out.println("输入正确,字符串为:"+str);
    			  flage= false;
    		  }
    	  }
    	  }
    	  
         }
    /**
     * 判断字符串中是否有数字
     * @param content 字符串
     * @return boolean值
     */
    public static boolean HasDigit(String content) {
        boolean flag = false;
        Pattern p = Pattern.compile(".*\\d+.*");
        Matcher m = p.matcher(content);
        if (m.matches()) {
            flag = true;
        }
        return flag;
    }
    }

2.从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。

​ 提示:使用包装类Integer、Double和日期转换类DateFormat实现

//2.从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。
// 提示:使用包装类Integer、Double和日期转换类DateFormat实现
public class TT {
    public static void main(String[] args) throws ParseException {
    	Scanner S = new Scanner(System.in);
    	System.out.print("请输入年龄:");
    	String name = S.nextLine();//键入值赋值给name
    	Integer name1 = Integer.valueOf(name);//字符串类型转换为Integer
    	int Q1=name1;//存在自动拆包与装包
    	System.out.println("年龄:"+Q1);//打印Q1更好的辨识已经转化为int型了
    	
    	System.out.print("请输入分数:");
    	String score = S.nextLine();//键入值赋值给score
    	Double score1 = Double.valueOf(score);//字符串类型转换为Double
    	Double Q2 = score1;
    	System.out.println("分数:"+Q2);
    	
    	System.out.print("请输入入学时间:");
    	String time = S.nextLine();//键入值赋值给time
    	DateFormat D =new SimpleDateFormat("yyyy-MM-dd");//规定时间对象的结构是年-月-日
    	Date time2 = D.parse(time);//将符合指定格式的字符串转成成时间对象.字符串格式需要和指定格式一致。
    	System.out.println("入学时间:"+time2);
    	
    }
    }
  1. 根据交通信号灯颜色决定汽车停车、行驶和慢行

​ 提示:使用枚举实现

public class TTT {
	public static void main(String[] args){
		//遍历打印有哪几种颜色的灯
    	for(Light QQQ:Light.values()){
    		System.out.println(QQQ);
    	}
		
		Scanner S = new Scanner(System.in);
    	System.out.print("请输入那种颜色的灯:");
    	String light1 = S.nextLine();//键入值赋值给light1
    	
    	switch (Light.valueOf(light1)) {
		case 红灯:
			System.out.println("请停车");
			break;
		case 黄灯:
			System.out.println("请减速");
			break;
		case 绿灯:
			System.out.println("请行驶");
			break;
		default:
			System.out.println("输入不正确");
			break;
		}
	}	
}
/**
 * 灯的枚举类型*/
enum Light {
	红灯,黄灯,绿灯
}
上面代码如果输入不是红灯,黄灯,绿灯,就会报错。我也不想用随机数输入的方式,事实上简单的switch结构更方便。
public class TTT {
	public static void main(String[] args){
		//遍历打印有哪几种颜色的灯
    	for(Light QQQ:Light.values()){
    		System.out.println(QQQ);
    	}
		
		Scanner S = new Scanner(System.in);
    	System.out.print("请输入那种颜色的灯:");
    	String light1 = S.nextLine();//键入值赋值给light1
    	
    	switch (light1) {
		case "红灯":
			System.out.println("请停车");
			break;
		case "黄灯":
			System.out.println("请减速");
			break;
		case "绿灯":
			System.out.println("请行驶");
			break;
		default:
			System.out.println("输入不正确");
			break;
		}
	}	
}
/**
 * 灯的枚举类型*/
enum Light {
	红灯,黄灯,绿灯
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值