1-31 正则表达式 String Buffer String Builder

本文介绍了Java中String类型值的正则表达式匹配与应用,如matches和split方法,以及如何使用StringBuilder和StringBuffer进行字符串操作,包括排序、插入、删除和替换,同时提到了缓存技术在这些类中的作用。
摘要由CSDN通过智能技术生成

一.作用:判断指定的String类型值 是否符合指定的规则存储的公式,正确规则表达式

二.为了避免发开中存在差异,Java提出了一些指定的字符,进行正则的编写

符号含义
^行起始符 (实际开发中不常用)
$行结束符(实际开发中不常用)
[]表示某一个位置 , 当且仅当该位置上只有一种可能 [] 可以省略 ; 一个位置上出现多种可能 | 可以省略
|按位 或 , 表示指定位置上出现多种可能
()表示 连续多个位置,格式的组合 ;出现多种可能的时候 | 一定不能省略
{}数据值的个数范围
{n} -- 表示 正好出现 n 个
{n,} -- 表示 至少出现 n 个
{n,m} -- 至少出现 n 个 至多 出现 m个 包含 m
\d表示 0-9 十个数字
\w表示 A-Z a-z 0-9 _
-表示 A 到 B 包含区间端点
.表示任意的一个符号
+表示至少出现1次 ,等价于 {1,}
\u4e00-\u9fa5表示中文的取值范围 (死记硬背)

三 正则表达式应用

1.方法:由String类提供的

public boolean matches(String regex)

根据指定的正则表达式(regex)判断String类型的值是否合法

四 正则拓展

1.拓展方法:由String类提供

public String[] split(String regex)

根据指定的正则表达式进行String的拆分 String[]

2.需求:给定的String str="00,10,02,-8,5"进行升序排序

import java.util.Arrays;

public class RegexTest {
    public static void main(String[] args) {
        String str="00,10,02,-8,5";
        /**
         * 转换成 字符串数组
         * 分隔符号要一直才可以
         */
        //按照,拆分
        String[] nums=str.split(",");
        System.out.println("排序前:"+ Arrays.toString(nums));
        //Arrays.sort(nums);//不对
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums.length-i-1; j++) {
                if(Integer.parseInt(nums[j])>Integer.parseInt(nums[j+1])){
                    String temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=temp;
                }
            }
        }
        System.out.println("排序后:"+Arrays.toString(nums));
    }
}

五.StringBuffer和StringBuilder类

1.什么是Buffer/Builder?

缓存(缓冲)技术:由于String底层实现原理 char[],数组一旦创建长度固定,不利于字符串删除或者新增操作,Java提出了缓存技术,在JVM虚拟机中 开辟指定的缓存空间,完成数据的操作,操作完成之后,还给堆栈

2.什么是Builder

对指定的内容重新定义;

3.StringBuffer类和StringBuilder类关系

都是对String类延伸(照抄之后,进行新功能的拓展)

StringBuffer类 对线程操作JDK1.0版本;StringBuilder类似于单线程操作对StringBuffer重新构建JDK5版本

4.StringBuffer类为例演示

①定义格式: public final class StringBuffer{}

②常用API

(1)实例化对象

public StringBuffer()---实例化对象,并创建 缓存区

public StringBuffer(String value)

实例化对象,并且将指定的String存储到缓存区

(2)与String类中同名的方法,参考StringAPI

(3)新增

public StringBuffer append(Object obj)

将任意的数据类型 追加到缓存区的末尾

public StringBuffer insert(int index,object obj)

将任意的数据类型从指定的位置 插入到缓存区中

(4)删除

public StringBuffer delete(int  start,int  end)

删除字符串中指定范围的所有数据 其中包含start 不包含end

public StringBuffer deleteCharAt(int index)

删除指定位置上的字符

(5)修改

public StringBuffer replace(int start,int end,String value)

用指定的字符串 替换 字符串中指定范围的数据,其中包含start不包含end

public void setCharAt(int index,char ch)

使用指定的字符替换原有位置上的字符

public class StringBufferAPITest {
    public static void main(String[] args) {
        StringBuffer sbuf=new StringBuffer("多线程安全");
        //向后追加
        sbuf.append(true).append(3.14);
        System.out.println(sbuf);
        //插入 t的后面
        sbuf.insert(6,666);
        System.out.println(sbuf);

        sbuf.delete(4,15);
        System.out.println(sbuf);
        sbuf.deleteCharAt(3);
        System.out.println(sbuf);


        //替换
        sbuf.replace(0,4,"我是替换者");
        System.out.println(sbuf);
        sbuf.setCharAt(4,'$');
        System.out.println(sbuf);
    }
}

5.StringBuilder

①定义格式:public final class StringBuilder{}

②常用的API与StringBuffer一致

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值