常用类(二)

1. Runtime类

        Runtime类代表java程序的运行时环境,每个程序都有一个与之关联的Runtime实例,应用程序通过该对象与运行时环境相连。

        应用程序不能自己创建Runtime对象,可以通过Runtime的静态方法getRuntime()获得Runtime对象。

2.Date类

        java.util.Date类表示特定的瞬间。

        常用构造方法:

        1.Date() 使用系统当前的时间创建 一个Date实例内部就是使用System. currentTimeMillis()获取系统当前时间的毫秒数来创建Date对象;

        2.Date(long dt) 使用自1970年1月1日00:00:00 GMT以来的指定毫秒数创建 一个Date实例

常用方法;

        3.getTime() 返回自 1970 年 1 月 1 日 00:00:00GMT 以来此 Date 对象表示的毫秒数;

        4.toString() 把此 Date 对象转换为以下形式的 String;

3. SimpleDateFormat类

        SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

4. Calendar类

        Calendar类(日历)是一个抽象基类,主要用于完成日期字段之间相互操作的功能。即可以设置和获取日期数据的特定部分。

获取Calendar类的实例的方法:

        1、使用 Calendar.getInstance();

        2、调用它的子类GregorianCalendar的构造方法

        一个Calendar的实例是系统时间的抽象表示,可以通过这个实例上的get(int field)方法来取得您想要的时间信息。

        publicint get(int field) 根据给定的日历字段获得当前时间中相应字段的值。

5. BigInteger类和BigDecemal

        java中针对大数的处理,提供了大整数和大小数

       注意:在实际开发中,关于金钱方面的,不会使用double类型,而是使用java.math.DigDecimal类型

练习1:

制作一个UserInfo类,内部用来记录用户注册信息,要求模仿注册环节。

import java.util.Scanner;

public class Test8 extends UserInfo{
    public Test8(String uid, String pwd, String uName, String sex, int uAge, String uEmail, String uAddress) {
        super(uid, pwd, uName, sex, uAge, uEmail, uAddress);
    }

    public static void main(String[] args) {
        //用户名 长度必须大于3位 用户名必须以 字母开头
        Scanner input = new Scanner(System.in);
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String uid = input.next();
        uid = uid.trim();
        char ch = uid.charAt(0);
        // 判断用户名的合法性
        if (!(uid.length() > 3) && !((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))) {
            System.out.println("提示:用户名的长度必须大于3位 用户名必须以 字母开头");
        }
        //密码长度不能低于6位 密码和确认密码必须一致
        System.out.println("请输入密码:");
        String password = input.nextLine();
        System.out.println("请输入确认密码:");
        String againPassword = sc.nextLine();
        // 判断密码的合法性
        if(!(password.length() >= 6 && password.equals(againPassword))) {
            System.out.println("提示:密码长度不能低于6位 密码和确认密码必须一致");
        }
        //性别必须是男 或者 女
        System.out.print("请选择性别(1.男 2.女): ");
        int choose = input.nextInt();
        String sex ="";
        if(choose == 1) {
            sex = "男";
        } else if(choose == 2){
            sex = "女";
        }else {
            System.out.println("提示:请选择性别");
        }
        //年龄 必须是在 16 ~ 50之间
        System.out.print("请输入年龄:");
        int age = input.nextInt();
        if(!(age >= 16 && age <= 50)) {
            System.out.println("提示:年龄 必须是在 16 ~ 50之间");
        }
        //电子邮箱 :必须包含@(且只能有一个),至少有一个 . @的位置必须在 .的前面@与.之间必须有字符
        //邮箱的地址必须以 .com  .cn  .net  .org结尾
        System.out.print("请输入电子邮箱:");
        String uEmail = input.next();
        if(!checkuEmail(uEmail)){
            System.out.println("提示:电子邮箱必须包含@(且只能有一个)," +
                    "至少有一个 . @的位置必须在 .的前面,@与.之间必须有字符" +
                    "邮箱的地址必须以 .com  .cn  .net  .org结尾");
        }
        //用户地址长度不能超过150位
        System.out.print("请输入用户地址:");
        String userAddress = input.next();
        if(userAddress.length() > 150) {
            System.out.println("提示:用户地址长度不能超过150位");
        }


    }

    private static boolean checkuEmail(String uEmail) {
        char[] emailArr = uEmail.toCharArray();
        boolean flag = true;
        int i = -1; //计算@的索引
        int iNum = 0; //计算@的个数
        int j = -1; //计算.的索引
        int jNum = 0; //计算@的个数
        for(int t = 0; t < emailArr.length; t++) {
            if(emailArr[t] == '@') {
                i = t;
                iNum++;
                if(iNum > 1) {
                    flag = false;
                    break;
                }
            }
            if(emailArr[t] == '.') {
                j = t;
                jNum++;
                if(jNum > 1) {
                    flag = false;
                    break;
                }
            }
        }
        //if(!((i + 1) < j)) {
        if( flag && i > j && uEmail.substring(i + 1, j).isEmpty()) {
            flag = false;
        }
        if(flag && uEmail.endsWith(".com")) {
            flag = true;
        } else if(flag && uEmail.endsWith(".cn")) {
            flag = true;
        } else if(flag && uEmail.endsWith(".net")) {
            flag = true;
        } else if(flag && uEmail.endsWith(".org")) {
            flag = true;
        } else {
            flag = false;
        }
        return flag;

    }

}

练习2:

登录验证通过后,显示批发商品信息; 输入批发商品编号和数量,以指定格式显示总金额。

import com.fs.Demo1.Product;

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Scanner input1 = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String userName = input.next();
        System.out.print("请输入密码:");
        String password = input1.nextLine();
        System.out.println("登录成功!");
        System.out.println("***********欢迎进入商品批发城**************");
        System.out.println("/t/t编号/t/t商品/t/t价格");
        Product[] productArr = Test10.generate();
        Test10.showProduct(productArr);
        System.out.println("****************************************");
        System.out.print("请输入您要批发的商品编号:");
        int choose = input.nextInt();
        System.out.print("请输入批发数量:");
        int productNum = input.nextInt();
        double totalMoney = productNum * productArr[choose - 1].getProductPrice();
        System.out.print("您需要付款:");
        printPrice(totalMoney);
    }
    // 初始化
    public static Product[] generate() {
        Product[] productArr = new Product[5];
        productArr[0] = new Product("电风扇",124.23);
        productArr[1] = new Product("洗衣机",4500.0);
        productArr[2] = new Product("电视机",8800.9);
        productArr[3] = new Product("冰箱",5000.88);
        productArr[4] = new Product("空调机",4456.0);
        return productArr;
    }
    // 显示数据信息
    public static void showProduct(Product[] productArr){
        for(int i = 0; i < productArr.length; i++) {
            System.out.print("\t\t" + (i + 1) + "\t\t" + productArr[i].getProductName() + "\t\t");
            // 按照格式要求输出价格;
            printPrice(productArr[i].getProductPrice());
        }
    }
    // 按照格式要求输出价格;
    // togo
    public static void printPrice(double price) {
        // 取整数部分;
        int intNum = (int)price;
        // 取小数部分;
        int doubleNum =(int)(price - intNum) * 100;
        // 处理整数部分
        printIntStr(intNum);
        // 处理小数部分
        System.out.println("." + doubleNum);

    }
    // 处理整数部分
    public static void printIntStr(int number) {
        String s = "" + number;
        char[] charArr = s.toCharArray();
        int i = charArr.length % 3;
        for(int t = 0; t < i; t++) {
            System.out.print(charArr[t]);
        }
        if(i != 0) {
            System.out.print(",");
        }
        int k = 0;
        for(int j = i; j < charArr.length; j++) {
            k++;
            System.out.print(charArr[j]);
            if(k % 3 == 0 && j != charArr.length - 1) {
                System.out.print(",");
            }
        }
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值