JAVASE之String(二)

本文介绍如何使用 Java 的 StringBuilder 进行字符串操作,包括字符串的拼接、替换、删除及反转等,并演示了如何利用正则表达式进行字符串匹配、替换与拆分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

valeOf方法

将其他类型转换为字符串类型~

这里写图片描述

如:

int =100;
double d = 152.23

String str = String.valueOf(i);
String str = String.valueOf(d);

就给转换成字符串了

但是一般用 数字 +“”数字加个空字符串就转换成字符串了

StingBuilder及其API

StingBuilder为了修改字符串
其内部是一个可变的数组。改变字符串就是在原来基础上改变

这里写图片描述

代码:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建个空的
        String str = new String();
        StringBuilder sb =new StringBuilder();
        //对已有的字符串进行修改为StringBuilder
        StringBuilder sb2 =new StringBuilder("hello");
        //在字符串末尾追加字符串
        //努力学习java,为了找个好工作
        sb.append("努力学习java,为了找个好工作");
        str =sb.toString();
        System.out.println(str);
        //努力学习java,为了改变世界
        //替换字符串,3个参数,开头结尾,含头不含尾。
        sb.replace(9,16, "为了改变世界");
        str =sb.toString();
        System.out.println(str);
        //删除字符串,指定位置
        sb.delete(0,9);
        str =sb.toString();
        System.out.println(str);

        //活着,为了改变世界
        //append是在末尾加
        //insert方法是插入
        sb.insert(0, "活着,");
        //写下标,插入的字符串到这个下标的位置,后面依次向后移。
        str =sb.toString();
        System.out.println(str);

    }

运行后:

努力学习java,为了找个好工作
努力学习java,为了改变世界
为了改变世界
活着,为了改变世界

他们调完这些方法返回的还是StringBuilder

也就是说可以像JQ那样可以连续调用方法

StringBuilder的反转字符串

        StringBuilder sb = new StringBuilder("hello");
        System.out.println(sb.toString());
        System.out.println(sb.reverse());

String有替换字符串,但是没有反转,替换也和StringBuilder的替换参数也不一样

还有StringBuffer ~~~效果和StringBuilder参数和方法一样,但是Buffer是线程安全的

这里写图片描述

但是考虑到安全会有点下降效率。

汉字:

\u4e00  ------\u9fa5  

for(char c=”\u4e00”;c<”u9fa5”;c++){
char 可以加~~~~
}

打印所有汉字

        //用char c 去加,小于\u9fa5;
        for(char c='\u4e00';c<'\u9fa5';c++){
            System.out.println(c);

基本正则表达式

这里写图片描述

这里写图片描述

这里写图片描述

邮箱匹配:

代码:

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
         *邮箱地址 
         *+,前面至少有一个
         *[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+
         * java的点没有特殊含义,但是\是转义符,那么就把那个\在转义
         * 就是说在正则中有\的地方就在前面加个\就行了。
         */
        String regex ="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)+";
        System.out.println("请输入邮箱");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        //字符串的方法 matches,传入个正则字符串
        if(input.matches(regex)){
            System.out.print("匹配");

        };
        if(!input.matches(regex)){
            System.out.print("不匹配");

        }


    }

split方法:

拆分字符串,满足正则表达式的

这里写图片描述

什么地方满足正则,然后切下就不要了。就把字符串切分了
split返回一个数组

代码:

public class String_split {
    public static void main(String[] args){
        String str = "boss,jack,marry,jackson";
        //以逗号切分,但是如果如果以逗号切分,就要加个转义,因为传入的是正则
        //如果空字符串写在后面就不算了,在开头和中间算
        String [] array = str.split(",");
        //System.out.println(Arrays.toString(array));
        for(int i=0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }

replaceAll方法

字符串替换

这里写图片描述

把数字,连续数字换为

代码:

    public static void main(String[] args){
        String str = "ab1234aasdqweasd787878899789324dsdf";
        //传入regex,把连续的数字变为#,不写加就把每一个数字换成#
        System.out.println(str.replaceAll("\\d+", "#"));

    }
}

匹配替换和谐变为*

代码:

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //"(0086|\\+86)"就是可以用|表示或,匹配其中的一个
        String regex ="(wqnmlgb|cnm|dsb|rnmb|sb|db|djb)?";

        String mes = "wqnmlgb你太sb了!cnm!你个djb";
        System.out.println(mes.replaceAll(regex,"***"));

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值