尚学堂编码题答案 第八章 常用类

本编码答案为本人个人编辑,仅供参考。如有更优答案或者代码编写规范等问题欢迎读者私信本人或在下方评论处与本人交流。
1. 验证键盘输入的用户名不能为空,长度大于6,不能有数字。
提示:使用字符串String类的相关方法完成
可以使用Scanner的nextLine()方法,该方法可以接口空的字符串。
public class IsUserName {
public static void main(String[] args) {
User user = new User();// 创建用户
Scanner input = new Scanner(System.in);
// 输入用户名
System.out.println(“请输入用户名:”);
String userName = input.nextLine();
// 调用setter方法
user.setUserName(userName);
input.close();
}
}

class User {
private String userName;

public void setUserName(String userName) {
    boolean flag = true;
    boolean flag1 = true;
    if (userName == null) {
        System.out.println("用户名不能为空!");
        // 使用length()方法,判断userName的长度
    } else if (userName.length() <= 6) {
        System.out.println("用户名字符太短!");
    } else {
        for (int i = 0; i < userName.length(); i++) {
            // 使用charAt()将字符一个一个拿出来比较
            if (userName.charAt(i) != ' ') {
                this.userName = userName;
                flag = false;
            }
            // 使用Character.isDigit(char)来判断是否含有数字
            if (Character.isDigit(userName.charAt(i))) {
                flag1 = false;
            }
        }
    }
    if (flag) {
        System.out.println("用户名不能为空!");
    } else if (!flag1) {
        System.out.println("用户名中不能有数字!");
    } else {
        this.userName = userName;
        System.out.println("用户名设置成功!");
    }
}
public String getUserName() {
    return this.userName;
}

}
2. 接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。
提示:使用包装类Integer、Double和日期转换类DateFormat实现
public class InputConvert {
public static void main(String[] args) {
//主控制台,信息输入
Scanner input = new Scanner(System.in);
System.out.print(“请输入年龄:”);
String age = input.next();
System.out.print(“请输入分数:”);
String score = input.next();
System.out.print(“请输入入学时间:(格式为2018-09-05)”);
String time = input.next();
Student stu = new Student(age, score, time);// 创建学生对象,并直接初始化
System.out.println(stu.toString());// 打印输入信息
input.close();
}
}

class Student {
private int age;
private double score;
private Calendar time;

public Student(String age, String score, String time) {
    setAge(age);
    setScore(score);
    setTime(time);
}

public int getAge() {
    return age;
}
// 将字符串转化为整数
public void setAge(String age) {
    int age1 = Integer.parseInt(age);
    this.age = age1;
}

public double getScore() {
    return score;
}
// 将字符串转化为double型
public void setScore(String score) {
    double score1 = Double.parseDouble(score);
    this.score = score1;
}

public Calendar getTime() {
    return time;
}
// 将字符串转化为时间,再将时间转化为日历类
public void setTime(String time) {
    SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = new GregorianCalendar();
    Date date;
    try {
        date = sFormat.parse(time);
        cal.setTime(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    this.time = cal;
}
//重写toString方法,打印相关的信息
@Override
public String toString() {
    return "学生年龄:" + getAge() + ",分数:" + getScore() + ",入学日期:" + getTime().get(Calendar.YEAR) + "年"
            + (getTime().get(Calendar.MONTH) + 1) + "月" + getTime().get(Calendar.DATE) + "日";
}

}
3. 根据交通信号灯颜色决定汽车停车、行驶和慢行
提示:使用枚举实现
public class Traffic {
public static void main(String[] args) {
int num = new Random().nextInt(3);// 随机生成0,1,2
switch (Light.values()[num]) {
case RED:
System.out.println(“现在是红灯,汽车停止行驶”);
break;
case YELLOW:
System.out.println(“现在是黄灯,汽车减速缓驶”);
break;
case GREEN:
System.out.println(“现在是绿灯,汽车正常行驶”);
break;
default:
break;
}

}

}
enum Light {
RED, YELLOW, GREEN
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值