java常用类四:数字格式化DecimalFormat、随机数生成Random、枚举类型 enum

数字格式化DecimalFormat

package com.company.commonClasses05;

import java.text.DecimalFormat;

/*
    关于数字格式化: java.text.DecimalFormat;

        数字格式元素:
            #   任意数字
            ,   千分位
            .   小数点
            0   不够补0
*/
public class NumberTest01 {
    public static void main(String[] args){

        // 1.创建数字格式化对象
        // 需求:加入千分位
        DecimalFormat df = new DecimalFormat("###,###");

        // 开始格式化
        // 实际上是将 Number --> String
        System.out.println(df.format(12345678));  // 12,345,678

        // 需求:加入千分位,保留两位小数
        DecimalFormat df1 = new DecimalFormat("###,###.##");
        System.out.println(df1.format(123456.0789));  // 123,456.08

        // 需求:加入千分位,保留四位小数,并且不够补0
        /*
        DecimalFormat df2 = new DecimalFormat("###,###.####");
        System.out.println(df2.format(12345.67));  //12,345.67 并没有补0
        */
        DecimalFormat df2 = new DecimalFormat("###,###.0000");
        System.out.println(df2.format(12345.67));  //12,345.6700
    }

}
package com.company.commonClasses05;
/*
    java.math.BigDecimal;
        该类型的数据精确度极高,适合做财务软件。

        财务软件中double类型数据精确度太低。
*/
import java.math.BigDecimal;

public class NumberTest02 {
    public static void main(String[] args) {

        // 创建大数据
        BigDecimal v1 = new BigDecimal(10);
        BigDecimal v2 = new BigDecimal(20);

        // 做加法运算
        // v1 + v2 ; //错误:两个引用类型不能做加法运算
        // 必须调用方法执行加法运算,同理其他算数运算均需要相对应方法
        BigDecimal v3 = v1.add(v2);
        System.out.println(v3);
    }
}

随机数生成Random

package com.company.commonClasses05;

import java.util.Random;

/*
    生成随机数
*/
public class NumberTest03 {
    public static void main(String[] args) {

        // 创建一个新的随机数生成器
        Random r = new Random();

        // 生成int类型随机数
        int i = r.nextInt(101);  // [0,101)之间的随机数

        System.out.println(i);

        // 循环生成5个随机数
        for(int j=0; j<5; j++){
            System.out.println(r.nextInt(101));
        }

        // 作业:生成5个不重复的随机数
        // 为了检验 应该从[0,5)中生成随机数

        int[] a = new int[5];
        Random r1 = new Random();
        a[0] = r1.nextInt(5);
        for(int k=0; k<a.length; k++){
            a[k] = r1.nextInt(5);
            for(int j=0; j<k; j++){
                if(a[k] == a[j]){
                    k--;
                    break;
                }
            }
        }

        for(int j=0; j<a.length; j++){
            System.out.println(a[j]);
        }


    }
}

枚举类型 enum

package com.company.commonClasses05;
/*
    需求:定义一个方法,该方法的作用是计算两个int类型数据的商。
    如果计算成功则该方法返回1,如果执行失败则该方法返回0

    程序执行成功,但是该程序存在风险(强行加的风险^_^),分析:存在什么风险?
        程序员疏忽,将方法中return的值写为非0和1的值,编译不会报错。
        由于方法输出类型为int,太过于广泛。

    程序中的问题能在编译阶段解决的,绝不会放在运行期解决。所以以下程序可以进入“枚举类型”。
*/
public class EnumTest {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;

        int result = divide(a, b);
        if(result == 1){
            System.out.println("成功");
        }else if(result == 0){
            System.out.println("失败");
        }
    }

    public static int divide(int a, int b){
        try{
            int c = a / b;
            return 1;  //成功
        }catch(Exception e){
            return 0;  //失败
        }
    }
}

package com.company.commonClasses05;

public class EnumTest02 {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;

        Result result = divide(a, b);
        if(result == Result.SUCCESS){
            System.out.println("成功");
        }else if(result == Result.FALL){
            System.out.println("失败");
        }
    }

    public static Result divide(int a, int b){
        try{
            int c = a / b;
            return Result.SUCCESS;  //成功
        }catch(Exception e){
            return Result.FALL;  //失败
        }
    }
}

// 定义一个枚举类型
enum Result{
    // 成功和失败
    // 规范要求大写
    SUCCESS, FALL  //有限的
}

//四季
enum Season{
    SPRING, SUMMER, AUTUMN, WINTER
}

你可能感兴趣的:(Java)