【JAVA】数字转化相关

本文详细介绍了Java中如何判断字符串是否表示整数或小数,使用matches方法结合正则表达式进行验证。同时,文章讲解了Java的除法运算及向上、向下、四舍五入取整的方法。此外,还深入探讨了int、Integer、long和Long类型之间的转换,包括自动转换和强制转换的规则与示例。
摘要由CSDN通过智能技术生成

1、java判断一个字符串是否是整数或小数的方法:

matches() 方法:用于检测字符串是否匹配给定的正则表达式。
EX:str.matches(“正则表达式”)
正则表达式:

//判断是否是整数或4位内的小数
[+-]?[0-9]+(\\.[0-9]{1,4})?
//判断是否是整数或不限制小数位的小数
[+-]?[0-9]+(\\.[0-9]+)?

2、java除法运算 并 向上与向下取整 | 四舍五入

public static void main(String[] args) {
        //运算符
        int a = 10;
        int b = 20;
        System.out.println(a / b);//0
        System.out.println((double)a/b);//0.5
        
        double result = (double)a/b;
        /**
         * 四舍五入
         */
        int roundNum = (int) Math.round(result);
        /**
         * 向上取整
         */
        int ceilNum = (int) Math.ceil(result);
        /**
         * 向下取整
         */
        int floorNum = (int) Math.floor(result);
    }

3、java中int(Integer)类型与long(Long)类型数据的相互转化

int 类型数据转换为:long、Integer、Long ;

  int -> long :属于小类型向大类型转换(大小指取值范围),自动转换(大本身包含小范围数据);

  int -> Integer :基本数据类型向包装数据类型转换,自动封箱。直接赋值或者new的时候装进去;
    EX:         Integer i2I2 = new Integer(10);// 自动封箱
    
  int -> Long : 同上。

long 类型数据转换为:int、Integer、Long;

 long -> int :大类型向小类型转换,需要强制转换。结果前边加需要的数据类型,如本文强转为int类型 “(int)”;
    注意,如果需要强转的数据本身超过目标类型范围会出现数据错误,比如byte范围仅为[-128, 127]int类型的128转换为byte数据类型的时候会返回-128,在校范围内循环获取;
    EX:         int l2i = (int)123456L;// 强转

 long -> Integer : 需要将获取到的long类型数据强转一次再进行封装;
    EX:         Integer l2I2 = new Integer((int)123456L);// long类型不能直接转换为Integer类型,中间需要强转一次

 long -> Long : 基本数据类型向包装数据类型转换,自动封箱。直接赋值或者new的时候装进去。
    EX:         Long i2L = new Long(123456L);

Integer 类型数据转换为:int、long、Long;

   Integer -> int : 包装数据类型向基本数据类型转换,自动拆箱。可以直接获取值或者调用获取值得api;
    EX: 
           int I2i1 = I0;// 自动拆箱        
           int I2i2 = I0.intValue();// api获取

   Integer -> long :自动拆箱获取对应int类型数据之后会自动转化为long类型;
    EX:
           long I2l1 = I0;        
           long I2l2 = I0.longValue();

   Integer -> Long : 不能强制或直接获取,中间需要int/long类型作为中间类型过渡。
    EX:            
           Integer I0 = new Integer(10);
           Long I2L1 = I0.longValue();

Long 类型数据转换为:int、long、Integer;

   Long -> int : 包装数据类型向小范围的基本数据类型转换,自动拆箱之后需要强制转换。或者调用获取值得api;
    EX:
                Long L0 = 123456l;
                int L2i1 = L0.intValue();
        
   Long -> long : 包装类型转基本类型,自动拆箱;
    EX:
                Long L0 = 123456l;
                long L2l1 = L0;        
                long L2l2 = L0.longValue();
        

   Long -> Integer : 不能强制或直接获取,中间需要int/long类型作为中间类型过渡。
    EX:
               Long L0 = 123456l;
               Integer L2I1 = L0.intValue();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值