string常用方法

开发中经常使用的字符串,做下汇总梳理
一,length,index of, subString

@Test
    public void testUserInfo() {

        // 一,截取字符串功能
        String name = "ABCDEFG";
        //获取字符串的长度
        int length = name.length();
        System.out.println("length" + length);
        //length 7

        //返回指定字符在此字符串中第一次出现处的索引
        int index = name.indexOf("F");
        System.out.println("index索引" + index);
        //index索引 5

        //从指定位置开始截取字符串,默认到末尾。
        String substring = name.substring(2);
        System.out.println("substring" + substring);
        //CDEFG

        String substring1 = name.substring(2, length);
        System.out.println("substring1" + substring1);
        //1CDEFG
    }

二,equals,contains, endwith, startWith,empty

 @Test
    public void test2() {

        String firstName = "abc";
        String secondName = "abc";
        String thirdName = "ABC";
        boolean equals = firstName.equals(secondName);
        System.out.println("equals = " + equals);//equals = true
        boolean equals1 = firstName.equals(thirdName);
        System.out.println("equals1 = " + equals1);//equals1 = false
        boolean b = firstName.equalsIgnoreCase(thirdName);
        System.out.println("忽略大小写 " + b);//忽略大小写 true

        boolean a = firstName.contains("a");
        System.out.println("a = " + a);//a = true
        boolean abce = firstName.contains("abce");
        System.out.println("abce = " + abce);//abce = false
//       //判断字符串是否以传递进来的字符串开头
        boolean a1 = firstName.startsWith("a");
        System.out.println("a1 = " + a1);
        //判断字符串是否以传递进来的字符出结尾
        boolean b1 = firstName.endsWith("b");
        System.out.println("b1 = " + b1);
        //判断字符串的内容是否为空
        boolean empty = firstName.isEmpty();
        System.out.println("empty = " + empty);
    }

三,string 转化为字符串数组,转大写,转小写,replace替换,trim 前后去除空格

 @Test
    public void test3() {
        String answers = "ABCD";
        char[] chars = answers.toCharArray();
        System.out.println("chars = " + chars);
        // char[] chars = answer.toUpperCase().toCharArray();
        Arrays.sort(chars);//排序

        String s = answers.toLowerCase();//转小写
        System.out.println("s = " + s);
        String s1 = answers.toUpperCase(); //转答谢
        System.out.println("s1 = " + s1);
        char[] chars1 = answers.toUpperCase().toCharArray();
        System.out.println("chars1 = " + chars1);

        //替换
        //将指定字符进行互换
        String name = " 小红帽 ";
        String secondName = "大红帽";
        String replace = name.replace(name, secondName);
        System.out.println("replace result = " + replace);
        // 去除两端空格
        String trim = name.trim();
        System.out.println("name = " + name);
        System.out.println("trim = " + trim);

    }

四,字符串到数值转化

 @Test
    public void convertStr() {
        int age = 12;
        String ageStr = age + "";
        ///使用String类的静态方法,只产生一个String对象
        String secondAgeStr = String.valueOf(age);
        String thirdAgeStr = Integer.toString(age);
       
        //字符串转化int
        String userId = "13";
        Integer firstUserId = Integer.valueOf(userId);
        //直接使用静态方法,不会产生多余的对象
        int secondUserId = Integer.parseInt(userId);
    }

五 ,equals

 @Test
    public void test5() {
        String s1 = new String("hello");
        String s2 = new String("hello");
        System.out.println(" equalsS1= " + s1.equals(s2));//true
        System.out.println("s1==s2 = " + s1 == s2);//false
}

六,spilt
经常分给字符串来使用

 @Test
    public void testSpilt() {
        String questionIds = "1,2,3,3,4";
        List<String> collect = Arrays.stream(questionIds.split(",")).collect(Collectors.toList());
        System.out.println("split = " + collect);//split = [1, 2, 3, 3, 4]

        //有些特殊符号需要用 反斜杠 \ 转义,在Java要用两个反斜杠 \\
        String s = "aa|bb|cc";
        String[] strArray = s.split("\\|");
        for (int i = 0; i < strArray.length; i++) {
            System.out.print("单个字符串" + strArray[i]);
        }
        // 单个字符串aa   单个字符串bb  单个字符串cc
    }

七,string.format()
string.format()函数用来对字符串进行加工,得到我们想要的字符串,string.format(String format, Object… args) ,第一个参数,是要格式化拼接内容,object…是多个拼接参数。常用的有 %s 和%d
%是格式化输入接受参数的标记

 @Test
    public void test1() {
        // string.format()函数用来对字符串进行加工,得到我们想要的字符串
        //string.format(String format, Object... args)   ,第一个参数,是要格式化拼接内容,object...是多个拼接参数
        // %s 是字符串类型,%d 是十进制整数
        String reason = "本次申请因“%s”被驳回";
        //String.join()
        String hello = String.format("hello,%s", "中秋快乐!");
        logger.info("打招呼信息:{}", hello);
        //打招呼信息:hello,中秋快乐!

        String returnReason = String.format(reason, "字写的丑");
        logger.info("退回原因:{}", returnReason);
        //退回原因:本次=申请因“字写的丑”被驳


        double n = 3.1415926;
        String fNum = String.format("%f%n", n);
        logger.info("fNum结果是:{}", fNum);

        logger.info(String.format("我叫%s,她叫%s", "小明", "小方")); // 我叫小明,她叫小方
    }

有个需求,递增生成六位的学生学号,不够六位的使用0 补充,可以使用%06d : %是格式化输入接受参数的标记
0格式化命令:结果将用零来填充
6:填充位数
d:代表十进制 数据

 @Test
    public void testUser() {
        String format = String.format("%06d", 112);
        System.out.println("format = " + format);//000112
        }

八,String.join()

/**
     * 字符串拼接
     */
    @Test
    public void testJoin() {
        //join 串联集合
        ArrayList<String> nameList = Lists.newArrayList("小红", "小明", "小花");
        String joinNames = String.join("-", nameList);
        logger.info("拼接结果是:{}", joinNames);
        // 拼接结果是:小红-小明-小花

        //串联多个对象
        String hello = String.join(":", "你好", "我也好");
        logger.info("hello:{}", hello);
        //hello:你好:我也好

        String happy = joiner("-", "我好开心", "我好难过");
        logger.info("happy:{}", happy);
        //happy:我好开心-我好难过
    }

九,StringUtils 中的isEmpty 和isBlank 判空操作

isEmpty 方法
只有当字符串非null非空串(”“)的时候才返回true

isBlank 方法
首先传入的参数是null或者空字符串的时候会返回true,接下来是通过Character.isWhitespace方法判断字符是否全部是空白字符(空格、tab键、换行),如果是就返回false,否则返回true;isNotBlank方法跟isBlank方法相反

 /**
     * isEmpty 判断条件是: cs == null || cs.length() == 0;
     * isBlank  除了  cs == null || cs.length() == 0 还增加了对空白字符串的判读,更加严格
     * isWhitespace()  方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符。
     */
    @Test
    public void reNameTest() {
        String name = "小兔子";
        boolean blank = StringUtils.isBlank(name);
        System.out.println("blank = " + blank);//blank = false

        String secondName = "";
        boolean empty = StringUtils.isEmpty(name);
        System.out.println("empty = " + empty);//empty = false
        boolean blank1 = StringUtils.isBlank(secondName);
        System.out.println("blank1 = " + blank1);//blank1 = true
        
        String thirdName = " "; //是一个空格
        boolean empty1 = StringUtils.isEmpty(thirdName);
        System.out.println("空格empty1 = " + empty1);//空格empty1 = false
        boolean blank2 = StringUtils.isBlank(thirdName);
        System.out.println("空格blank2 = " + blank2);//空格blank2 = true

    }

小结
都是经常用的基础知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值