美文网首页
Java 字符串格式化和工具类使用

Java 字符串格式化和工具类使用

作者: 程序员三时 | 来源:发表于2021-09-09 14:48 被阅读0次

    前言

    我们在做项目时候经常需要对字符串进行处理,判断,操作,所以我就总结了一下java字符串一些常用操作,和推荐比较好用我在自用的工具类,毕竟有轮子我们自己就不用重复去写了,提供开发效率,剩下的时间就去约女朋友吧哈哈哈!!!!

    [图片上传失败...(image-2a1820-1631256472874)]

    java 内置操作

    format

    我们知道平时我们都会做字符串拼接打印操作,单还是在用➕号嘛,那样就很low为力显示逼格,使用format操作很有必要😄

    String类的format()方法用于创建格式化的字符串以及连接多个字符串对象,制定字符串格式和参数生成格式化的字符串。显示不同转换符实现不同数据类型到字符串的转换

    image

    测试用例

        @Test
        public void a() {
            String str = "";
            str = String.format("Hi,%s", "王力");
            System.out.println(str);
            str = String.format("Hi,%s:%s.%s", "王南", "王力", "王张");
            System.out.println(str);
            System.out.printf("字母a的大写是:%c %n", 'A');
            System.out.printf("3>7的结果是:%b %n", 3 > 7);
            System.out.printf("100的一半是:%d %n", 100 / 2);
            System.out.printf("100的16进制数是:%x %n", 100);
            System.out.printf("100的8进制数是:%o %n", 100);
            System.out.printf("50元的书打8.5折扣是:%f 元%n", 50 * 0.85);
            System.out.printf("上面价格的16进制数是:%a %n", 50 * 0.85);
            System.out.printf("上面价格的指数表示:%e %n", 50 * 0.85);
            System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50 * 0.85);
            System.out.printf("上面的折扣是%d%% %n", 85);
            System.out.printf("字母A的散列码是:%h %n", 'A');
        }
    

    打印结果

     .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::                (v2.4.7)
    
    2021-09-10 10:42:07 INFO  background-preinit org.hibernate.validator.internal.util.Version HV000001: Hibernate Validator 6.1.7.Final
    2021-09-10 10:42:07 INFO  main PropertiesTest Starting PropertiesTest using Java 1.8.0_202 on xiangyongdeMacBook-Pro.local with PID 46281 (started by xiangyong in /Users/xiangyong/selfProject/project/kmall/kmall-api)
    2021-09-10 10:42:07 INFO  main PropertiesTest The following profiles are active: test,mptest
     _ _   |_  _ _|_. ___ _ |    _ 
    | | |\/|_)(_| | |_\  |_)||_|_\ 
         /               |         
                            3.4.1 
    2021-09-10 10:42:13 INFO  main PropertiesTest Started PropertiesTest in 6.755 seconds (JVM running for 8.519)
    
    Hi,王力
    Hi,王南:王力.王张
    字母a的大写是:A 
    3>7的结果是:false 
    100的一半是:50 
    100的16进制数是:64 
    100的8进制数是:144 
    50元的书打8.5折扣是:42.500000 元
    上面价格的16进制数是:0x1.54p5 
    上面价格的指数表示:4.250000e+01 
    上面价格的指数和浮点数结果的长度较短的是:42.5000 
    上面的折扣是85% 
    字母A的散列码是:41 
    

    更多格式进入参考这里

    equals

    两个字符串做比较,当然这里比较的话就不得不提老生常谈的问题,==和equals区别

    1. 首先的区别是,equals 是方法,而 == 是操作符;

    2. equals比较的是两个字符串内容而不是引用

    3. ==在比较对象时比较的是引用地址是否相同,在比较基本类型时比较的是其内容

    @Test
        public void a() {
            // s1与s2不是同一个对象
            String s1 = new String("aaa");
            String s2 = new String("aaa");
    
            System.out.println(s1 == s2);            //false
            System.out.println(s1.equals(s2));    //true
    
    
            // s5与s6是基本数据类型
            String s5 = "aaa";
            String s6 = "aaa";
    
            System.out.println(s5==s6);            //true
            System.out.println(s5.equals(s6));    //true
    
            //s3和s4是同一个地址的引用
            String s3 = new String("aaa");
            String s4 = s3;
    
            System.out.println(s3==s4);            //true
            System.out.println(s3.equals(s4));    //true
    
        }
    

    注意我们看到s5==s6是true而s1 == s2是false,因为s5和s6是基本数据类型此时比较的是值,s1和s2是对象比较的是引用所以是不同两个String对象比较引用

    这里涉及到基本数据类型:

    Java中有8种基本数据类型(字母开头小写),即boolean、byte、short、char、int、float、long、double,基本数据类型不是对象,放在堆栈中,用完就销毁,访问速度快。而对象放在堆中。如果必须用到对象Java针对每种基本数据类型提供了包装类,即Boolean、Byte、Short、Character、Integer、Float、Long、Double(开头大写)等。

    详细深入参考点击进入

    toString

    返回当前String对象的字符串表示形式,一般用于打印对象信息方便快捷,所有类都继承object,任何类,都可以重写toString方法

    工具类

    hutool

    借用官方引用:

    Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的

    点击进入官网导航 强烈推荐

    已发布maven中央仓库,多么模块可以单独引用某一个模块,也可以引用全部,

    image image

    包含组件如下:

    image

    Apache Commons

    分的比较·散乱单,应为不是专门的工具库,但是用起来还是挺不错的
    使用频率最高的框架。有很多实用的工具类并没有全部列出来,只列出了最基础的一部分,感兴趣的小伙伴,可以看官方的api进行更深入的学习

    Apache Commons有很多子项目,常用的项目如下

    image

    详细使用参考这里点击进入

    相关文章

      网友评论

          本文标题:Java 字符串格式化和工具类使用

          本文链接:https://www.haomeiwen.com/subject/matnwltx.html