【第九章 String与字符数组、字节数组转换,StringBuffer,StringBuilder,日期时间API(jdk8以前)】

第九章 String与字符数组、字节数组转换,StringBuffer,StringBuilder,日期时间API(jdk8以前)

1.String与字符数组转换
字符串—>字符数组:调用String的toCharArray()。
字符数组 —> 字符串:调用String的构造器。

public void test(){
        String s1="abc123";
        char[] charArray=s1.toCharArray();
        for (int i = 0; i <charArray.length ; i++) {
            System.out.println(charArray[i]);
        }
        char[] arr=new char[]{'a','b','c','1','2','3'};
        String s2=new String(arr);
        System.out.println(s2);
    }

2.String与字节数组转换
字符串 —>字节数组:调用String的getBytes()。
字节数组—>字符串:调用String的构造器。

			public void test1() {
        String str1="abc123";
        byte[] bytes=str1.getBytes();
        System.out.println(Arrays.toString(bytes));
        byte [] arr1=new byte[]{97,98,99,100,101};
        String str2=new String(arr1);
        System.out.println(str2);
    }

3.String,StringBuffer,StringBuilder的异同?
String:不可变的字符序列,底层使用char[]数组存储。
StringBuffer:可变的字符序列,线程安全的,效率低,底层使用char[]数组存储。
StringBuilder:可变的字符序列,线程不安全的,效率高,底层使用char[]数组存储。
4.StringBuffer常用方法

  • StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接。
  • StringBuffer delete(int start,int end):删除指定位置的内容。
  • StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str。
  • StringBuffer insert(int offset, xxx):在指定位置插入xxx。
  • StringBuffer reverse() :把当前字符序列逆转。
    ①总结:增:append,删:delete,改:setCharAt,查:charAt,长度:length,遍历:for()。
    ②效率从高到底:StringBuilder>StringBuffer>String
public  void test(){
    StringBuffer s1=new StringBuffer("abc");
    s1.append(2);
    s1.append('2');
    System.out.println(s1);
   // s1.delete(2,4);
   // System.out.println(s1);
    s1.replace(2,4,"hello");
    System.out.println(s1);
    s1.insert(2,"xian");
    System.out.println(s1);
    s1.reverse();
    System.out.println(s1);
    }

5.JDK8之前日期时间API
①System类中 的currentTimeMillis()
②java.util.Date类

①两个构造器的使用:
构造器一:创建一个对应当前时间的Date对象;
构造器二:创建指定毫秒数的Date对象
②两个方法的使用:
toString():显示当前的年月日时分秒
getTime():获取当前Date对象对应的毫秒数(时间戳)

③如何将java.util.Date对象转化为java.sql.Date对象?
java.sql.Date:对应着数据库中日期类型的变量

   1. Date d1=new java.sql.Date(1663505883068L);
    java.sql.Date d2=(java.sql.Date)d1;
   2. Date d3=new Date();
    java.sql.Date d4=new java.sql.Date(d3.getTime());
public  void test1(){
   //①返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
        long time=System.currentTimeMillis();
        System.out.println(time);//1663505642641
        //构造器一:创建一个对应当前时间的Date对象
        Date date1=new Date();
        System.out.println(date1.toString());//Sun Sep 18 20:54:02 CST 2022
        System.out.println(date1.getTime());//1663505642641
        //构造器二:创建指定毫秒数的Date对象
        Date date2=new Date(1663505642641L);
        System.out.println(date2.toString());
      
        java.sql.Date date3=new java.sql.Date(1663505883068L);
        System.out.println(date3);//2022-09-18
        //如何将java.util.Date对象转化为java.sql.Date对象?
        //①
        Date d1=new java.sql.Date(1663505883068L);
        java.sql.Date d2=(java.sql.Date)d1;
        //②
        Date d3=new Date();
        java.sql.Date d4=new java.sql.Date(d3.getTime());
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值