java学习日记 day14

文章介绍了如何使用Java的substring方法进行字符串截取,展示从屏蔽手机号中间部分到提取身份证生日和性别信息的过程。同时,文章还讨论了敏感词替换的实现,并利用StringBuilder进行字符串拼接和反转操作。
摘要由CSDN通过智能技术生成

案例:手机号屏蔽

截取函数:

String substring(int beginIndex,int endIndex)

注意点:包头不包尾,包左不包右,也就是说endIndex的值应该为我们截取的字符串的最后一位的下一个字符的索引;

只有返回值才是截取的小串,对原本字符串不影响

截取的值需要定义变量来接收;

重载方法:

String substring(int beginIndex)

截取到末尾,只需要给定开始位置

public class StringDemo {
    public static void main(String[] args) {
        //获取一个手机号
        String phoneNumber = "13233445566";

        //获取前三位;
        String start = phoneNumber.substring(0,3);

        //截取后四位
        String end = phoneNumber.substring(7);

        //拼接
        String result = start + "****" + end;
        //打印
        System.out.println(result);
    }
}

  

案例:身份证信息查看

生日信息,身份证倒数第二位为性别信息

将字符中的数字转为int型数据

利用‘0’- 0可以获得字符0的ASCII码为48

那么可以用身份证中的数字减去48则得到int型数字;

public class StringDemo01 {
    public static void main(String[] args) {
        //定义一个身份证号的数组
        String id = "513030202012212719";

        //获得生日信息
        String year = id.substring(6,10);
        String month = id.substring(10,12);
        String day = id.substring(12,14);
        //输出
        System.out.println("人物信息为:");
        System.out.println("生日为:" + year + "年" + month + "月" + day + "日");

        //获得性别信息
        char gender = id.charAt(16);
        //转化为int型才能判断
        int num = gender - 48;
        //判断
        if (num % 2 == 0){
            System.out.println("性别为:女");
        }else {
            System.out.println("性别为:男");
        }
    }
}

  

案例:敏感词

replace(“ “, “ “) 将前面的字符串替换为后面的字符串

当有很多敏感词时,可以定义一个词库,遍历语句,将每一个敏感词替换;

public class StringDemo02 {
    public static void main(String[] args) {
        //获取话语
        String talk = "真jer菜";

        //替换
        String result = talk.replace("jer","**");

        //打印结果
        System.out.println(result);
    }
}

StringBuilder

案例

拼接字符串

使用StringBuilder实现,定义一个方法,将静态数组中的字符串拼接并输出;

public class StringBuliderTest01 {
    public static void main(String[] args) {
        //定义一个int型数组,静态初始化数组
        int[] arr = {1,2,3};
        String s = arrayToString(arr);
        System.out.println(s);
    }

    //定义一个方法,将int数组中字符拼接为字符串返回
    public static String arrayToString(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++){
            if (i == arr.length-1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]).append(",");
            }
        }
        sb.append("]");
        String s = sb.toString();

        return s;
    }
}

 字符串反转

定义一个方法,实现字符串反转,键盘输入字符串,调用方法后输出反转结果;

public class StriingBuilderTest02 {
    public static void main(String[] args) {
        //输入字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String s = sc.nextLine();

        String reverse = reverseString(s);
        System.out.println(reverse);
    }

    //定义方法,反转字符串
    public static String reverseString(String s){
        StringBuilder sb = new StringBuilder(s);
        sb.reverse();
        String ss = sb.toString();
        return ss;
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值