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
}