尚学堂·Java300集·第八章·作业题参考答案(eclipse运行结果截图+源码)

eclipse运行结果截图:
在这里插入图片描述
源码:


/**
 * 尚学堂第八章练习题解答
 * @author 绝尘
 *
 *一、选择题
 *  建议:将代码赋值到程序中检验。
 *	答案:
 *  1.BD  
 *  2.A(String类为不可变字符序列,str始终为空null)
 *  3.B
 *  4.C
 *  5.A
 *  
 *二、简答题
 *  1.自动装箱:基本数据类型数据自动转换成包装类型对象。
 *    自动拆箱:包装类型对象自动转换成基本数据类型数据。
 *  2.String类的对象是不可变长度的字符序列,即只能被初始化一次,而StringBuffer、
 *    StringBuilder类的对象是可变长度的字符序列,可进行增、删、插入、替换等操作。
 *  3.String str=”bjsxt”;在字符串常量区创建了一个对象。
 *    String str= new String(“bjsxt”);既在字符串常量区定义了一个区域,同时在堆中创建了一个对象。
 *  4.mkdir在最终生成的最后一级目录之前,如果有某个目录不存在,则目录生成失败,即mkdir只能在已有目录下
 *    生成下一级新目录;mkdirs在生成目录时,如果中间某级目录缺失,也会自动生成所有目录。
 *  5.一般需要定义一组常量时,使用枚举类定义。
 *
 *三、编码题
 */
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Random;
import java.util.Scanner;

public class SxtExercise08 {
	
	public static void main(String[] args) throws ParseException{
		
		/*
		 *  1.验证键盘输入的用户名不能为空,长度大于6,不能有数字。
		 *    提示:使用字符串String类的相关方法完成。
		 *    可以使用Scanner的nextLine()方法,该方法可以接口空的字符串。
		 */
		System.out.println("第一题输出结果:");
		int flag=0;
		while(true) 
		{
			System.out.println("请输入用户名:");
			Scanner userScanner=new Scanner(System.in); 
			String str=userScanner.nextLine();
			if(str.equals("")) flag=1;
			else if(str.length()<=6) flag=2;
			else {
				for(int i=0;i<str.length();i++)
				{
					if(Character.isDigit(str.charAt(i))) flag=3;
				}
			}
			switch (flag) {
			case 0:
				System.out.println("用户名可用,您的用户名为:"+str);
				flag=-1;
				break;
			case 1:
				System.out.println("【提示】:用户名不能为空!重新输入...");
				flag=0;
				break;
			case 2:
				System.out.println("【提示】:用户名长度必须大于6!重新输入...");
				flag=0;
				break;
			case 3:
				System.out.println("【提示】:用户名不能包含数字!重新输入...");
				flag=0;
				break;
			default:
				break;
			}
			if(flag==-1) break;
		}
		
		System.out.println("###########################");
		
		/*   22-350.5-2019-9-1
		*  2.接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、
		*    浮点数、日期类型,并在控制台输出。
		*    提示:使用包装类Integer、Double和日期转换类DateFormat实现
		*/
		System.out.println("第二题输出结果:");
		
		System.out.println("请输入学生年龄:");
		Scanner ageInput = new Scanner(System.in);
		String age = ageInput.nextLine();
		System.out.println("请输入学生分数:");
		Scanner gradeInput = new Scanner(System.in);
		String grade = gradeInput.nextLine();
		System.out.println("请输入学生入学时间:");
		Scanner dateInput = new Scanner(System.in);
		String date = dateInput.nextLine();
		
		Integer Age = Integer.parseInt(age);//年龄字符串——Integer类
		Double Grade = Double.parseDouble(grade);//成绩字符串——Double类
		SimpleDateFormat Date = new SimpleDateFormat("yyyy-MM-dd");
		java.util.Date DATA = Date.parse(date);//日期字符串——Date类
		
		System.out.println("该学生"+Age+"岁,"+"成绩"+Grade+"分,"+"入学时间:"+DATA);
		
		System.out.println("###########################");
		
		/*
		 *  3.根据交通信号灯颜色决定汽车停车、行驶和慢行
		 *    提示:使用枚举实现
		 *  
		 */
		System.out.println("第三题输出结果:");
		int i = new Random().nextInt(3);//生成0,1,2随机数
		switch (TrafficLight.values()[i]) { //TrafficLight.values()[i]随机产生0,1,2,分别
		case RED:  						    //对应枚举类TrafficLight的RED,GREEN,YELLOW,
			System.out.println("红灯,停车!");//然后做不同的处理。
			break;
		case GREEN:
			System.out.println("绿灯,行驶!");
			break;
		case YELLOW:
			System.out.println("黄灯,慢行!");
			break;
		default:
			break;
		}
		
		
	}//main方法
	
}

enum TrafficLight{
	RED,GREEN,YELLOW
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值