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


    一.作用:判断指定的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"进行升序排序

    1. import java.util.Arrays;
    2. public class RegexTest {
    3. public static void main(String[] args) {
    4. String str="00,10,02,-8,5";
    5. /**
    6. * 转换成 字符串数组
    7. * 分隔符号要一直才可以
    8. */
    9. //按照,拆分
    10. String[] nums=str.split(",");
    11. System.out.println("排序前:"+ Arrays.toString(nums));
    12. //Arrays.sort(nums);//不对
    13. for (int i = 0; i < nums.length; i++) {
    14. for (int j = 0; j < nums.length-i-1; j++) {
    15. if(Integer.parseInt(nums[j])>Integer.parseInt(nums[j+1])){
    16. String temp=nums[j];
    17. nums[j]=nums[j+1];
    18. nums[j+1]=temp;
    19. }
    20. }
    21. }
    22. System.out.println("排序后:"+Arrays.toString(nums));
    23. }
    24. }

    五.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)

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

    1. public class StringBufferAPITest {
    2. public static void main(String[] args) {
    3. StringBuffer sbuf=new StringBuffer("多线程安全");
    4. //向后追加
    5. sbuf.append(true).append(3.14);
    6. System.out.println(sbuf);
    7. //插入 t的后面
    8. sbuf.insert(6,666);
    9. System.out.println(sbuf);
    10. sbuf.delete(4,15);
    11. System.out.println(sbuf);
    12. sbuf.deleteCharAt(3);
    13. System.out.println(sbuf);
    14. //替换
    15. sbuf.replace(0,4,"我是替换者");
    16. System.out.println(sbuf);
    17. sbuf.setCharAt(4,'$');
    18. System.out.println(sbuf);
    19. }
    20. }

    5.StringBuilder

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

    ②常用的API与StringBuffer一致

  • 相关阅读:
    Unity 帧同步游戏解决方案梳理
    vue3脚手架运行各种报错汇总(持续收集)
    DELL台式机Linux ubuntu 20.04.5 安装
    基于springboot网上书城系统
    【scikit-learn基础】--『回归模型评估』之可视化评估
    安装Ambari集群MySQL_大数据培训
    Python数据分析与机器学习41-使用Gensim库构造中文维基百度数据词向量模型
    安全生产知识竞赛活动小程序界面分享
    Verilog 之 wire与reg 类型的变量
    动物园规则怪谈【逻辑】
  • 原文地址:https://blog.csdn.net/Zjiayuan2002/article/details/137218572