String常用API整理

String常用API整理

参考网址:

https://mp.weixin.qq.com/s?__biz=MzAwNTA5MzMxMw==&mid=2650642537&idx=2&sn=05908d738d3cbf6d6f42f9c383dc7605&chksm=8328dac7b45f53d15060c17ef61d36b0a04c255cdd182180bec058f2f15e3a19d2256da24cf8&mpshare=1&scene=23&srcid=11268GhCJy5RRr0rGPqwyO5s&sharer_sharetime=1606457970961&sharer_shareid=9d1e76e919cc0b2f3ca23ed1f5ef67a8#rd

前言

为啥要整理StringAPI

1.面试会问

很现实的问题,面试我都被问了好几次,如果知道多一点会更好,比说length(),subString()这些简单的方法好

2.工作中经常用到

昨天我就遇到字符窜拼接的问题了,而且是大批量的操作字符窜,所以整理一下也是很有必要的

1.入门练习实战demo

说明:

这是一个关于String的综合练习,包括了很多API,帮助回忆记忆

/**
 * @Auther: shaoming
 * @Date: 2020/11/27 14:26
 * @Description:
 * StringAPI集成练习
 * 通过一窜身份证号,解析出用户信息
 */
public class CarNo {
    public static void main(String[] args) {
        //身份证编号
        String carNo = "320772199306294425";
        /**
         * 1.获取地区码
         */
        String areaCode = carNo.substring(0,6);
        System.out.println("地区码: "+areaCode);
        /**
         * 2.输入用户的生日
         * 使用三种方式表示生日,用到重要的两个方法
         * String的subString()方法
         * 基本数据类型包装类的valueOf()方法,例如Integer.vlueOf(String str)
         */
        //2.生日
        //2.1.第一种生日的表示方式(20201111)
        String bir1 = carNo.substring(6,14);
        System.out.println("表示生日的第一种方式: "+bir1);
        //2.2.第二种生日的表示方式(2020年11月11日)
        String year2 = carNo.substring(6,10);
        String month2 = carNo.substring(10,12);
        String day2 = carNo.substring(12,14);
        System.out.println("第二种表示生日的方式  :"+year2+"年  "+month2+ "月  "+day2+"日");
        /*
        2.3第三种表示生日的方式
           说明:2.2表示生日存在一个问题
             如果用的的生日是20200101   ---->2020年01月01日
             这样不好,我们预期看到的是
             2020年1月1日   , 把数字前面的0去除
         */
        String year3 = carNo.substring(6,10);
        String month3 = carNo.substring(10,12);
        //先给字符串转为int,数字01前面的0就没有了,使用Integer.valueOf(String str)方法
        //然后先给1转为字符窜,使用String.valueOf(Integer i)方法
        month3= String.valueOf(Integer.valueOf(month3));
        String day3 = carNo.substring(12,14);
        //处理方法同上
        day3 = String.valueOf(Integer.valueOf(day3));
        System.out.println("第三种方式表示生日 :"+year3+"年"+month3+"月"+day3+"日 ");

        /**
         * 3.判断性别
         * 判断性别的要求:
         * 看身份证号倒数第二位数字的奇偶性,奇数男性,偶数女性
         */
        //过去倒数第二位的数字
        String sexString = carNo.substring(carNo.length()-2, carNo.length()-1);
        //转为数字判断奇偶性
        Integer sex = Integer.valueOf(sexString);
        if(sex%2==0){
            System.out.println("性别为:女性");
            return;//说明:此处一定要return,否则会出行逻辑错误
        }
            System.out.println("性别为:男性");
    }

2.具体实例

说明:

因为string的API也很多,我记下我经常忘记的但是工作中常用的,或者说常被提及的API方法

2.1 忽略大小写的方法

这个方法经常用到,因为我们做模糊查询的时候经常需要忽略大小写,提高用户体验,否则因为大小写的问题,造成搜索失败,影响用户体验,其实所谓的模糊就应该忽略大小写

@Test
    public void testequalsIgnoreCase(){
        //用户输入用户名
        String userName = "Admin";
        //数据库用户名"admin"
        if(userName.equalsIgnoreCase("admin")){
            System.out.println("登录成功");
        }

    }

突然想到数据库mysql也是可以忽略大小写的

相关方法

select lower('JAVA')     from  dual     --varchar转小写

select upper('java')     frm    dual       --varhar转大写

2.2 去除空格

重点说明:

trim() 方法返回字符串的副本,忽略前导空格和尾部空格

2.3字符串替换

String str = “address”;
String newstr = str.replace(“a”,”A”);//newstr 的值为 Address

2.4判断字符串的开始与结尾

1 ) str.startsWith(String prefix)

该方法用于判断当前字符串对象的前缀是否是参数指定的字符串,其中, prefix 是指作为前缀的字符。

2 ) str.endsWith(String suffix)

该方法用于判断当前字符串是否是以给定的子字符串结束,其中, suffix 是指作为后缀的字符串。

String num1 =22045612;
String num2 =21304578;
Boolean b = num1.startsWith(22);//b 为 true
Boolean b2 = num1.endsWith(78);//b2 为 false
Boolean b3 = num2.startsWith(22);//b3 为 false
Boolean b4 = num2.endsWith(78);//b4 为 true

2.5字符串分割

这也是我经常忘记的的一个String的API

注意:返回值是一个String类型的数组

@Test
    public void testSplitBylimit(){
        String str = new String("abc,def,ghi,gkl");
        String[] split = str.split(",",2);
        for (String s : split) {
            System.out.println(s);
        }

    }
    @Test
    public void testSplit(){
        String str = new String("abc,def,ghi,gkl");
        String[] split = str.split(",");
        for (String s : split) {
            System.out.println(s);
        }

    }

个人csdn博客网址:https://blog.csdn.net/shaoming314

jam
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值