首页 > 其他分享 >StringBuilder&正则表达式&日期类总结

StringBuilder&正则表达式&日期类总结

时间:2023-12-28 20:59:34浏览次数:35  
标签:String 正则表达式 StringBuilder System 日期 println sb Calendar out

总结

StringBuilder:可以改变的字符串

底层:使用的是一个byte类型的数组,默认长度16
如果超过16,数组会自动扩容
扩容的时机:当添加的数据的长度大于此时数组的长度
扩容的机制:当前数组长度的2倍 + 2

  1. 构造方法:
    StringBuilder()
    构造一个没有字符的字符串构建器,初始容量为16个字符。

    // 创建StringBuilder的对象
      StringBuilder sb = new StringBuilder();
      int len = sb.capacity();// 获取底层数组的长度
      System.out.println(len);
    

    StringBuilder(String str)
    构造一个初始化为指定字符串内容的字符串构建器。

     StringBuilder sb2 = new StringBuilder("abcde");// 将String类型“abc”转换为StringBuilder
     System.out.println(sb2.capacity());
    
  2. 常用的方法:
    append(boolean b) :追加(在尾部加上)

     StringBuilder sb = new StringBuilder();
     // 在尾部追加
       sb.append("abc");
       sb.append(123);
       System.out.println(sb);
     // StringBuilder是可以改变字符串,正常是不用返回值,但是在append方法里面有返回值值,返回值类型还是StringBuilder
     // 这种设计是为了能提供链式开发
     sb.append("abc").append("www").append(true);
     System.out.println(sb);
    

    capacity() 返回当前容量
    delete(int start, int end) 删除此序列的子字符串中的字符。

     sb.delete(0,3);
            System.out.println(sb);
    

    deleteCharAt(int index) 删除 char在这个序列中的指定位置。

    sb.deleteCharAt(0);
            System.out.println(sb);
    

    insert(int offset, boolean b) 将 boolean参数的字符串表示插入到此序列中。

      sb.insert(1,false);
            System.out.println(sb);
    

    replace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String 。

     sb.replace(1,6,"FALSE");
            System.out.println(sb);
    

    reverse() 导致该字符序列被序列的相反代替。

     sb.reverse(); // 翻转
            System.out.println(sb);
    

    setCharAt(int index, char ch) 指定索引处的字符设置为 ch 。

       sb.setCharAt(0,'我');
            System.out.println(sb);
    

    trimToSize() 尝试减少用于字符序列的存储。

      sb.trimToSize();
            System.out.println(sb.capacity());
            System.out.println(sb.length());
    
  3. 使用StringBuilder

    // 设计一个方法讲解数组的元素拼接为字符串
        public static String getElements(int[] nums) {
            // 拼接字符串:+,使用StringBuilder的append()
            StringBuilder sb = new StringBuilder();
            for (int num : nums) {
                sb.append(num);
            }
            // 返回结果
            return sb.toString();
        }
    
        public static void main(String[] args) {
            String str = "vxc3245324sddsgdf的方式更多发给是否跟得上343dxsfdsfgd";
            // 将str首位加上 hello
            StringBuilder sb = new StringBuilder(str);
            str = sb.insert(0, "hello").append("hello").delete(15,26).toString();
            System.out.println(str);
    
        }
    

正则表达式

正则表达式:就是用一个特定格式来表示某种数据
作用:用校验数据是否满足某个要求

在java中怎样写正则表达式:所有的正则表达式都是一个String类型数据
String regex = "[写一些特定格式的数据]";
0-9:任意一个数字
a-z:任意一个小写字母
A-Z:任意一个大写字母
\u4e00-\u9fa5:任意的一个汉字

正则表达式怎样表示个数
"[正则的数据]{个数}"
"[0-9]{2}":任意的2个数字
“[0-9]{2,15}”:任意的2个到15个之间个数的数字
"[0-0]{1,}":任意个数的数字(1个以上)

在java那些方法支持正则表达式,在String里面有几个方法
1、matches(String regex) :判断指定字符串数据是否满足传入的正则格式
2、replaceAll(String regex, String replacement):将匹配上正则表达式的数据替换成replacement

    public static void main(String[] args) {
        String str = "5654654675756765768";
        // 声明一个正则表达式
        String regex = "[0-9]{1,}";
        // 使用正则表达式
        boolean matches = str.matches(regex);// 判断str是否是0-9之间的任意一个数字
        System.out.println(matches);

        String regex2 = "[a-z]{1,}";
        String regex3 = "[a-zA-Z]{1,}";
        String regex4 = "[\u4e00-\u9fa5]{1,}";
        System.out.println("你们好32423".matches(regex4));
        String str = "d2gf3fdsgfd44dsfsd567dsfdsf123432345325ff";
        // 将str中一个数字替换为“”
        str = str.replaceAll("[0-9]{2}","我");
        System.out.println(str);

    }
public static void main(String[] args) {
      String regex = "[\\D]"; // \d:任意的一个数字  \D:任意一个非数字
      String regex = "[^0-9]"; // [0-9]:任意的一个数字 [^0-9]:
      String regex = "[0-9a-zA-Z]"; // [0-9a-zA-Z]:任意的一个数字或者大小写字母
      String regex = "[\\w]"; // \w:任意的一个数字或者大小写字母
      String regex = "[\\W]";
      String regex = "[^0-9a-zA-Z]";
      String str = "a";
      String regex = "[^\u4e00-\u9fa5]";
      System.out.println(str.matches(regex));

      String regex = "[0-9]{n,}"; // {n}:固定个数,{n,m}:最少n个,最多m个,{n,}:至少n个
    // 表示个数的通配符:?:0个或1个  *:0个或多个   +:至少1个
      String regex = "[0-9]+";
      System.out.println("13325436547547547547547547".matches(regex));

    // 以声明开头
      String regex = "^[1][0-9]{10}"; // ^[]:以这个内容做开头
      System.out.println("1724324444".matches(regex));
    // 以声明结尾
    String regex = "^[1][0-9]{6}[.com]{4}$";
    System.out.println("1724323.net".matches(regex));

    // String:matches()、replaceAll():正则匹配来替换、replaceFirst():正则匹配第一个、spilt():使用正则表达式来分割
      String str = "143t675467547y5";
      String regex = "[a-zA-Z]";
      String s2 = str.replaceFirst(regex, "");
      System.out.println(s2);
      String str = "123a456b789cc234ffff777"; // 分割字符串,等到所有的数字子串
      String[] split = str.split("[a-z]{1,}");
      System.out.println(Arrays.toString(split));

Date:日期类

我们要操作的日期其实是某个瞬间:年月日 时分秒
Date:java.util
Date:就是表示日期的一瞬间

  1. 构造方法
    Date() 获取当前的系统时间。
    Date(long date):通过传入毫秒数,转换为对应日期

  2. 常用方法
    setTime(long time):将date的日期设置为传入的毫秒数对应的日期
    getTime() :将date转换为毫秒数

     public static void main(String[] args) {
            // 1、获取当前的系统日期
            Date date = new Date(); // 显示的格式和中国人堵塞习惯不符
            System.out.println(date);
            Date date1 = new Date(3254646546754L);
            System.out.println(date1);
            long time = date.getTime();
            System.out.println(time);
            date.setTime(3456436546754L);
            System.out.println(date);
    
        }
    

SimpleDateFormat:日期格式化的类

  1. 将日期设置成我们能看懂的格式

    • 格式化中表示的符号:
      y:年
      M:月
      d:日
      H:时
      m:分
      s:秒

    • 日期的格式:
      yyyy:四位的年份(2023)
      yy:两位的年份(23)
      MM:两位月份(12)
      dd:两位的号数
      HH:两位的小时
      mm:两位的分钟
      ss:两位秒数

    • 日期显示格式其实就是上面的日期格式的拼接
      "yyyy-MM-dd HH:mm:ss"
      "yyyy/MM/dd HH:mm:ss"
      "yyyy年MM月dd日 HH时mm分ss秒"

  2. 构造方法
    SimpleDateFormat():默认格式
    SimpleDateFormat(String pattern) 使用设置的格式

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 创建一个带自定义格式的日期格式化对象
    Date date = new Date();
    
  3. 常用方法:
    format(date):格式化日期的方法

    // 格式化当前日期
    String format = sdf.format(date);
    System.out.println(format);
    

    ​ parse(date):将一个字符串表示日期,转换为Date类型

    // 将 “2024-02-09 00:00:00”转化为Date
    Date parse = sdf.parse("2024-02-10 00:00:00"); // 注意:字符串的格式和sdf里面设置格式一致
    System.out.println(parse);
    

Calendar:日历类

这个进行日期的运算(加减日期)
Calendar: 是一个抽象类

  1. 创建Calendar对象调用:getInstance()

  2. 认识Calendar常用的字段(常量):
    YEAR:表示Calendar这类中年字段(属性),通过get(YEAR)获取年的数据
    MONTH:表示Calendar这类中月份字段(属性),通过get(MONTH)获取月份的数据,注意:月份从0开始,获取的月份的数据比实际少1
    DAY_OF_MONTH:表示Calendar这类中号数字段(属性)

    HOUR:小时字段
    MINUTE:分钟字段
    SECOND:秒的字段

  3. 常用的方法
    getInstance()

    Calendar cal = Calendar.getInstance(); // 创建了一个Calendar对象
    

    ​ get(int field):根据传入的字段,获取对应的数据

      // 获取年月日 时分秒
            int y = cal.get(Calendar.YEAR);// 获取年的数据
            System.out.println(y);
            int month = cal.get(Calendar.MONTH) + 1;
            System.out.println(month);
            int d = cal.get(Calendar.DAY_OF_MONTH);
            System.out.println(d);
    
            System.out.println(cal.get(Calendar.HOUR));
            System.out.println(cal.get(Calendar.MINUTE));
            System.out.println(cal.get(Calendar.SECOND));
    

    ​ set(int field, int value) :设置对应字段的数据

    cal.set(Calendar.YEAR,2024);
    cal.set(Calendar.MONTH,12);
    

    ​ add(int field, int amount) :对传入的字段进行运算,amount是正数就是加法,amount是 负数就是做减法
    ​ getTime():将Calendar对象转换Date类型

    Calendar cal = Calendar.getInstance(); // 创建了一个Calendar对象
    Date date = cal.getTime();
    

    ​ setTime():将Date对象转换Calendar类型

    Date date = new Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    

标签:String,正则表达式,StringBuilder,System,日期,println,sb,Calendar,out
From: https://www.cnblogs.com/JunYuanStudy/p/17933532.html

相关文章

  • 正则表达式语法速查
    字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,n匹配字符n。\n匹配换行符。序列\\匹配\,\(匹配(。^匹配输入字符串开始的位置。如果设置了RegExp对象的Multiline属性,^还会与"\n"或"\r"之后的位置匹配。$匹配输入字符串结尾......
  • Shell脚本中获取机器的日期和时间
    要在Shell脚本中获取机器的日期和时间,可以使用内置的date命令。以下是如何在Shell脚本中使用date命令来获取机器的日期和时间的示例: echo"`date+"%Y%m%d%H:%M:%S"`"在这个示例中,我们使用了date命令和格式化字符串来获取当前日期和时间。%Y代表年份,%m代表月份,%d代表日期,%H代表......
  • 正则表达式
    JavaScript中的正则表达式是一种强大的文本处理工具,它可以用于匹配、搜索、替换和拆分字符串。正则表达式的基本语法如下:^:匹配输入字符串的开始位置。$:匹配输入字符串的结束位置。.:匹配除换行符以外的任何字符。*:匹配前面的子表达式零次或多次。+:匹配前面的子表达式一次或......
  • JS 日期与毫秒之间互相转换
    时间戳(Unix/Linuxtimestamp)转换工具—在线转换毫秒时间戳工具(toolscat.com) Date()函数:该方法返回日期的毫秒表示(毫秒数精确到毫秒)1.毫秒转日期://2023-3-25格式newDate(1679673600000).toLocaleDateString().replace(/\//g,"-");//2023-03-25格式newDate(1......
  • Java 日期转换运算工具类
    ​  参考文档:Java日期转换运算工具类-CJavaPy1、Date常用方法java.util.Date 是Java中表示日期和时间的一个基础类。但随着时间的推移,许多其方法被标记为过时,并被推荐在Java8引入的 java.time 包中的新类替代。但是,Date仍然在很多旧的代码库中广泛使用,并在与某......
  • StringBuilder,一种可变的string
    StringBuilder是Java中用于操作字符串的可变对象。它允许在字符串中进行修改、添加、删除字符等操作,而不会像普通的字符串操作(例如使用String类)那样产生新的字符串对象。这种可变性使得在处理大量字符串拼接或修改时更加高效。与String不同,StringBuilder是可变的,这意味......
  • 正则表达式校验特殊字符(通用,一般情况下)
    /[\`\~\!\@\#\$\%\^\&\*\(\)\_\+\-\=\{\}\|\[\]\:\;\'\<\>\?\,\.]*/.test(string)//直接写判断条件时,不使用/^XXX$/.test(string)(^)匹配输入字符串的开始位置和($)匹配输入字符串的结束位置直接使用/XXX/.test(string)^匹配输入字符串的开始位置。如果设置了RegExp对......
  • 正则表达式
      publicstaticvoidmain(String[]args){Stringregex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?^&~#()-+=;,.{}<>/?])[A-Za-z\\d**$@$**!%*?&]{12,}$";//替换为你的正则表达式Stringinput="gzh12345678GZ......
  • 参与循环的正则表达式可能导致异常
    问题描述:批量上传图片后,我们希望获取每一个图片的名字letreg=/(.+)\.(jpg|png|gif|jpeg|webp)/gi; //作为全局变量functioninfo(){letimgInfo=reg.exec(file.name)//这是在循环方法里。然后就出错了。file.name是能获取的,但是经过 reg.exec()处理要得到结果时......
  • 日期时间处理工具怎么选?看这篇就够啦!
    哈喽!大家好!我是程序视点的小二哥。一直以来,处理时间和日期的JavaScript库,选用的都是Momment.js。它的API清晰简单,使用方便灵巧,功能还特别齐全。我自己也是是Moment.js的重度使用者。凡是遇到时间和日期的操作,就把Moment.js引用上。moment.js在功能上最为丰富,但体积较大,加载的m......