锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. Java工具类NumberUtils详解

Java工具类NumberUtils详解

0
  • JAVA
  • 发布于 2024-09-25
  • 0 次阅读
黄健
黄健
/**
         * @方法: public static int toInt(String str)
         * @作用: 将一个字符串转换成int类型
         * @参数: str-将要转换的字符串,可能会是null
         * @返回值: 转换失败返回0,否则返回转换的结果值
         */
        System.out.println(NumberUtils.toInt("5")); //返回5
        System.out.println(NumberUtils.toInt("")); //返回0
        System.out.println(NumberUtils.toInt(null)); //返回0

        /**
         * @方法: public static int toInt(String str, int defaultValue)
         * @作用: 将一个字符串转换成int类型,如果转换失败就返回一个默认值defaultValue
         * @参数: str-将要转换的字符串,可能会是null;
         *        defaultValue-默认值,如果转换失败就显示默认值
         * @返回值: 如果转换失败就返回一个默认值defaultValue,否则返回转换的结果值
         */
        System.out.println(NumberUtils.toInt(null, 0)); // 返回 0
        System.out.println(NumberUtils.toInt("", 0)); // 返回 0
        System.out.println(NumberUtils.toInt("5", 0)); // 返回 5

        /**
         * @方法: public static long toLong(String str)
         * @作用: 将一个字符串数据转换成一个long类型数据,如果转换失败返回0
         * @参数: 转换的字符串,可能为null;
         * @返回值: 字符串代表的long数据类型,或者转换失败的默认值0
         */
        System.out.println(NumberUtils.toLong(null)); // 返回 0
        System.out.println(NumberUtils.toLong("6")); // 返回 6
        System.out.println(NumberUtils.toLong("")); // 返回 0

        /**
         * @方法: public static long toLong(String str, long defaultValue)
         * @作用: 将一个字符串数据转换成一个long类型数据,如果转换失败返回默认值
         * @参数: str-转换的字符串,可能为null;
         *        defaultValue-默认值
         * @返回值: 字符串代表的long数据类型,转换失败的时候返回默认值
         */
        System.out.println(NumberUtils.toLong(null, 0)); // 返回 0
        System.out.println(NumberUtils.toLong("6", 0)); // 返回 6
        System.out.println(NumberUtils.toLong("", 0)); // 返回 0

        //double(双精度浮点数)和float(单精度浮点数):
        //在内存中占的字节数不同,单精度浮点数占4个字节,双精度浮点数占8个字节;
        //有效位数不同,单精度浮点数有效位数是8位,双精度浮点数有效位数是16位;
        //位数不同,单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
        //处理速度不同,一般来说处理器处理单精度浮点数的速度比处理双精度的浮点数速度要快;

        /**
         * @方法: public static double toDouble(String str)
         * @作用: 将一个字符串转换成double类型
         * @参数: str-转换的字符串,可能为null
         * @返回值: 字符串代表的double值;如果转换失败返回0.0d,如果字符串是null返回0.0d
         */
        System.out.println(NumberUtils.toDouble(null)); // 返回 0.0
        System.out.println(NumberUtils.toDouble("")); // 返回 0.0
        System.out.println(NumberUtils.toDouble("12")); // 返回 12.0

        /**
         * @方法: public static double toDouble(String str, double defaultValue)
         *
         * @作用: 将一个字符串转换成double类型,如果转换失败将会把默认值defaultValue返回
         * @参数: str-转换的字符串,可能为null;
         *        defaultValue-默认值
         * @返回值: 转换成功返回字符串代表的double数据类型;如果转换失败返回0.0d;如果字符串值是null将会把默认值返回
         */
        System.out.println(NumberUtils.toDouble(null, 0.001d)); // 返回 0.001
        System.out.println(NumberUtils.toDouble("", 0.001d)); // 返回 0.001
        System.out.println(NumberUtils.toDouble("12", 0.001d)); // 返回 12.0

        /**
         * @方法: public static float toFloat(String str)
         * @作用: 将一个字符串转换成float数据类型,如果转型失败返回0.0f;如果传入参数字符串为null,返回默认值0
         * @参数: str-转换的字符串,可能为null
         * @返回值: 转换成功返回字符串代表的float数据类型,如果转型失败返回0
         */
        System.out.println(NumberUtils.toFloat(null)); // 返回 0
        System.out.println(NumberUtils.toFloat("")); // 返回 0
        System.out.println(NumberUtils.toFloat("1.6")); // 返回 1.6

        /**
         * @方法: public static float toFloat(String str, float defaultValue)
         * @作用: 将一个字符串转换成float数据类型
         * @参数: str-转换的字符串,可能为null
         *        defaultValue-默认值
         * @返回值: 转换成功返回字符串代表的float数据类型,否则返回默认值defaultValue
         *          (如果转型失败返回默认值defaultValue;如果传入参数字符串为null,返回默认值defaultValue)
         */
        System.out.println(NumberUtils.toFloat(null, 0.0001f)); // 返回 1.0E-4(1.0 * 10^﹣4)
        System.out.println(NumberUtils.toFloat("",0.001f)); // 返回 0.001
        System.out.println(NumberUtils.toFloat("1.6",0.0001f)); // 返回 1.6


        /**
         * @方法: public static boolean isDigits(String str)
         * @作用: 检查字符串是否是只包含数字字符,null和空将会返回false
         * @参数: str-检查的字符串 str可为null
         * @返回值: 只包含数字返回true,否则返回false
         */
        System.out.println(NumberUtils.isDigits("6666! Life is so short,do something to make yourself happy,such as coding! 6666")); // 返回 false
        System.out.println(NumberUtils.isDigits("6666!生活如此短暂,做一些使自己开心的事,比如编程!6666"));  // 返回 false
        System.out.println(NumberUtils.isDigits("666666"));  // 返回 true

        /**
         * @方法: public static boolean isParsable(String str)
         * @作用: 检验提供的字符串是否可以转换为number,
         *        可解析的number包括下面的方法 Integer.parseInt(String), Long.parseLong(String),
         *        Float.parseFloat(String) or Double.parseDouble(String),
         *        当调用上面的方法时这个方法可以替代ParseException异常;十六进制和科学符号被认为是不可解析的;null和空字符串返回false;
         * @参数: str-检验的字符串 str可为null
         * @返回值: true-如果参数是可转换的字符串,否则返回false
         */
        System.out.println(NumberUtils.isParsable(""));  // 返回 false
        System.out.println(NumberUtils.isParsable(null));  // 返回 false
        System.out.println(NumberUtils.isParsable("12"));  // 返回 true
        System.out.println(NumberUtils.isParsable("12.0")); // 返回 true
        System.out.println(NumberUtils.isParsable("12.3")); // 返回 true
        System.out.println(NumberUtils.isParsable("7a"));  // 返回 false (十六进制7a对应十进制122)
        System.out.println(NumberUtils.isParsable("1.0E-4")); // 返回 false


        /**
         * @方法: public static boolean isCreatable(String str)
         * @作用: 检查字符串是否是一个有效的number;
         *        有效数字包括进制标有0x或0X预选项,八进制数、科学记数法和标有类型限定符的数字,
         *        以 前导零开头的非十六进制字符串被视为八进制值,因此字符串09将返回false,因为9不是有效的八进制,
         *        然而从0开始的数字,被视为十进制;null、空或者空串将返回false;
         * @参数: str-检查的字符串; str可为null
         * @返回值: true-如果字符串是一个正确格式化的数字,否则返回false
         */
        System.out.println(NumberUtils.isCreatable(null)); // 返回 false
        System.out.println(NumberUtils.isCreatable(" ")); // 返回 false
        System.out.println(NumberUtils.isCreatable("")); // 返回 false
        System.out.println(NumberUtils.isCreatable("09")); // 返回 false
        System.out.println(NumberUtils.isCreatable("9")); // 返回 true
        System.out.println(NumberUtils.isCreatable("0x56")); // 返回 true
        System.out.println(NumberUtils.isCreatable("0X20")); // 返回 true

        /**
         * @方法: public static int compare(int x, int y)
         * @作用: 比较两个int数值
         * @参数: x-第一个int比较值,y-第二个int比较值
         * @返回值: 如果 x==y 返回0;x<y 返回负数(-1);x>y 返回正数(1)
         */
        System.out.println(NumberUtils.compare(1,1)); // 返回 0
        System.out.println(NumberUtils.compare(1,2)); // 返回 -1
        System.out.println(NumberUtils.compare(3,2)); // 返回 1

        /**
         * @方法: public static int compare(long x, long y)
         * @作用: 比较两个int数值
         * @参数: x-第一个long比较值,y-第二个long比较值
         * @返回值: 如果 x==y 返回0;x<y 返回负数(-1);x>y 返回正数(1)
         */
        System.out.println(NumberUtils.compare(1L,1L)); // 返回 0
        System.out.println(NumberUtils.compare(3L,2L)); // 返回 1
        System.out.println(NumberUtils.compare(5L,6L)); // 返回 -1

        /**
         * @方法: public static BigDecimal createBigDecimal(String str)
         * @作用: 将一个字符串转换成BigDecimal类型,如果字符串是null将会返回null
         * @参数: str-转换的字符串,可能为null
         * @返回值: 被转换的BigDecimal;如果输入的字符串是null将会返回null
         * @抛出异常: 空串或不能解析将会抛出 NumberFormatException
         */
//        System.out.println(NumberUtils.createBigDecimal("abc")); // 报异常 java.lang.NumberFormatException
//        System.out.println(NumberUtils.createBigDecimal("")); // 报异常 java.lang.NumberFormatException: A blank string is not a valid number
        System.out.println(NumberUtils.createBigDecimal(null)); // 返回 null
        System.out.println(NumberUtils.createBigDecimal("1235")); // 返回 1235

        /**
         * @方法: public static Double createDouble(String str)
         * @作用: 将一个字符串转换成Double类型,如果输入字符串是null将会返回null
         * @参数: str-转换的字符串,可能为null;
         * @返回值: 被转换的Double值(如果输入字符串是null将会返回null);
         * @抛出异常: 如果值不能解析将会抛出NumberFormatException ;
         */
        System.out.println(NumberUtils.createDouble(null)); // 返回 null
//        System.out.println(NumberUtils.createDouble("asc")); // 返回 java.lang.NumberFormatException: For input string: "asc"
        System.out.println(NumberUtils.createDouble("12")); // 返回 12.0

        /**
         * @方法: public static Long createLong(String str)
         * @作用: 将一个字符串转换为Long数据类型,注:前导零表示八进制;空间不剪裁。如果字符串值是null将会返回null;
         * @参数: str-转换的字符串,可能为null;
         * @返回值: 被转换的Long数据(如果输入的是null将返回null);
         * @抛出异常: 如果值不能被转换将会抛出NumberFormatException异常;
         */
//        System.out.println(NumberUtils.createLong("")); // java.lang.NumberFormatException: Zero length string
        System.out.println(NumberUtils.createLong(null));  // 返回 null
        System.out.println(NumberUtils.createLong("123")); // 返回 123

        /**
         * @方法: public static BigInteger createBigInteger(String str)
         * @作用: 将一个字符串转换为BigDecimal类型,自3.2以来,它处理六(0x或#)和八进制(0)符号。如果字符串为null将会返回null
         * @参数: str-转换的字符串,可能为null
         * @返回参数: 被转换的BigDecimal[如果输入字符串为null将返回null]
         * @抛出异常: 如果值不能被转换将会抛出NumberFormatException异常
         */
//        System.out.println(NumberUtils.createBigInteger("")); // java.lang.NumberFormatException: Zero length BigInteger
        System.out.println(NumberUtils.createBigInteger(null)); // 返回 null
//        System.out.println(NumberUtils.createBigInteger("12s"));// java.lang.NumberFormatException: For input string: "12s"
        System.out.println(NumberUtils.createBigInteger("12")); // 返回 12

        /**
         * @方法: public static Number createNumber(String str)
         * @作用: 将一个字符串值转换为java.lang.Number类型
         * @参数: str-转换字符串,可能为null
         * @返回值: 从字符串创建的Number值;如果输入的字符串为null则返回null
         * @抛出异常: 如果值不能被转换将会抛出NumberFormatException异常
         */
        System.out.println(NumberUtils.createNumber("123")); // 返回 123
//        System.out.println(NumberUtils.createNumber("12s")); // 返回 java.lang.NumberFormatException: 12s is not a valid number
        System.out.println(NumberUtils.createNumber("123.0")); // 返回 123.0
//        System.out.println(NumberUtils.createNumber("")); // 返回 java.lang.NumberFormatException: A blank string is not a valid number
        System.out.println(NumberUtils.createNumber(null)); // 返回 null

        /**
         * @方法: public static int max(int a, int b, int c)
         * @作用: 获取三个int值中最大的一个
         * @参数: a-值1,b-值2,c-值3
         * @返回值: 最大的值
         * @抛出异常: 如果参数是空抛出java.lang.IllegalArgumentException: Array cannot be empty
         */
        System.out.println(NumberUtils.max(1,5,2,9,10)); // 返回 10
//        System.out.println(NumberUtils.max()); // 返回 java.lang.IllegalArgumentException: Array cannot be empty

        /**
         * @方法: public static int max(int... array)
         * @作用: 返回数组中最大的值
         * @参数: array-一定不能为空或者null
         * @返回值: 数组中最大的值
         * @抛出异常: 如果数组为空或者null将会抛出IllegalArgumentException异常
         */
        System.out.println(NumberUtils.max(1,2,3,4,5,9,1.0,2.0,2.5,9.8)); //  返回 9.8

原文链接: https://onlyou.blog.csdn.net//article/details/103681712

标签: #JAVA 991 #软件开发 1171
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.