2021.09.10

2021.09.10

  • 千位分隔符
  • 输出1-100之间的所有素数
  • 输出九九乘法表
  • Java异常机制
  • Java自定义异常:用户注册登录验证

千位分隔符

/**
 * 千位分隔符(JS实现)
 * @param num 需要分割的数字
 * @returns {Array}
 */
function numFormat(num) {
     
    num = num.toString().split(".");  // 分隔小数点
    let arr = num[0].split("").reverse();  // ["7","6","5","4","3","2","1"]
    let res = [];
    for (let i = 0, len = arr.length; i < len; i++) {
     
        if (i % 3 === 0 && i !== 0) {
     
            res.push(",");   // 添加分隔符
        }
        res.push(arr[i]);
    }
    res.reverse(); // 再次倒序成为正确的顺序
    if (num[1]) {
       // 如果有小数的话添加小数部分
        res = res.join("").concat("." + num[1]);
    } else {
     
        res = res.join("");
    }
    return res;
}

let str = "1234567"
console.log(numFormat(str));
// java
import java.math.BigDecimal;
import java.text.DecimalFormat;


public class m0910 {
     
    public static void main(String[] arg) {
     
        BigDecimal bd = new BigDecimal(1234567.3395);
        System.out.println(parseNumber(",###,###", bd)); // out: 123,456,789
        System.out.println(parseNumber(",###,###.00", bd)); // out: 123,456,789.30
    }
    /**
     * 格式化数字
     * @param pattern 数据格式
     * @param bd BigDecimal类
     * @return 返回格式化后的数据
     */
    public static String parseNumber(String pattern, BigDecimal bd) {
     
        DecimalFormat df = new DecimalFormat(pattern);
        return df.format(bd);
    }
}

输出1-100之间的所有素数

    /**
     * 输出1-100之间的所有素数
     */
    public static void isSushu() {
     
        for (int i = 2; i <= 100; i++) {
     
            boolean flag = true;
            int count = 0;
            for (int j = 2; j < i; j++) {
     
                if(i % j == 0){
     
                    flag = false;
                    break;
                }
            }
            if (flag){
     
                System.out.print(i+"\t");
                count++;
                if(count % 6 == 0){
     
                    System.out.println();
                }
            }
        }
    }

输出九九乘法表

    /**
     * 九九乘法表
     */
    public static void mul(){
     
        for (int i = 1; i < 9; i++) {
     
            for (int i1 = 1; i1 <= i; i1++) {
     
                System.out.print(i+"*"+i1+"="+i*i1+"\t");
            }
            System.out.println();
        }
    }

Java异常机制

  • 编译型异常:又称检查型异常,代码编辑器爆红
  • 运行时异常Exception:有一个非常重要的子类:RuntimeException,例如空指针异常,类型转换异常,数组下标越界,算数异常等等;可以被捕获处理,百分之百是程序员个人问题
  • 错误Error:由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关,例如内存溢出,栈溢出,类定义和链接错误等;Error程序无法被控制和处理,JVM会终止线程
  • Exception和Error都是Throwable的子类
    public void test(int a,int b) throws ArithmeticException{
      // 向外抛出异常
//        if (b == 0){
     
//            throw new ArithmeticException(); // 主动抛出异常
//        }
        System.out.println(a/b);
    }
    
    public static void main(String[] args) {
     
        int a = 10;
        int b = 0;
        
        try {
     
            new ks78().test(2,0);
        } catch (ArithmeticException e) {
     
            System.out.println(e);
        } finally {
     
        }
        
        try{
     
            System.out.println(a/b);
        }catch (ArithmeticException e){
     
            System.out.println(e); // java.lang.ArithmeticException: / by zero
        }finally {
     
            System.out.println("finally");
        }

        /*
        一定要子类在前 父类在后 生成try/catch的快捷键是ctrl + alt + t
         */
        try{
     
            System.out.println(a/b);
        }catch (Error e){
     
            System.out.println(e); // java.lang.ArithmeticException: / by zero
        }catch (Exception e){
     
            System.out.println(e);
        }catch (Throwable t){
     
            System.out.println(t);
        }finally {
     
            System.out.println("finally");
        }
    }

Java自定义异常:用户注册登录验证

// IllegalNameException.java
package com.base.du657;
/*
自定义异常
 */
public class IllegalNameException extends Exception{
     
    public IllegalNameException(){
     

    }

    public IllegalNameException(String s){
     
        super(s); // 异常的信息传给父类
    }
}
package com.base.du657;

public class User {
     
    public static void main(String[] args) {
     
        User user = new User();
        try {
     
            user.register("ray","123456");
        } catch (IllegalNameException e) {
     
            e.printStackTrace();
        }
    }

    /**
     * 用户登录验证
     * @param username 用户名
     * @param password 密码
     * @throws IllegalNameException 无效用户名
     */
    public void register(String username,String password) throws IllegalNameException{
     
        if (null == username || username.length() < 4 || username.length() > 10){
     
            throw new IllegalNameException("IllegalName");
        }
        System.out.println("success");
    }
}

你可能感兴趣的:(2021.09,java)