System类和StringBuilder类

1.System系统类,主要用于获取系统的属性数据,没有构造方法。

代码展示;

public class SystemTest04 {
    public static void main(String[] args) {
        Long start = System.currentTimeMillis(); //获取当新系统时间的毫秒值(时间戳),可以用来做性能测试或者配合生成一些不重复的编号
        for (int i = 0;i < 100000; i++) {
            //测试书写的程序的运行效率
            System.out.println(i);
        }
            Long stop = System.currentTimeMillis(); //获取当前系统时间的毫秒值
            System.out.println("十万次性能测试时间为:"+(stop-start)+"毫秒");
    }
}

2.StringBuilder:是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的

代码展示:

public class StringBuilderTest05 {
    public static void main(String[] args) {
        //如下代码会在内存中出现三个字符串,Hello。World.HelLoworld
        // string类在做字符串值变化的时候,非常浪费内存
        String s ="Hello";
        s +="World";
        System.out.println(s);

        StringBuilder sb1=new StringBuilder("Hetlo");
        sb1.append("World"); //对字符串后面进行追加内容
        System.out.println(sb1);
        sb1.insert(2,"xyz"); //在字符串指定索引部位插入一个新的字符串
        System.out.println(sb1);

        StringBuilder sb2=sb1.reverse();//字符串的反转
        System.out.println(sb2);
    }

}

3.区别:

String类定义出来的字符串具有不变性: 一般不做经常变化字符串的使用,经常需要变化的推荐使用StringBuffer或StringBuilder

 StringBuffer 线性安全的可变字符串序列

 StringBuilder 是线性不安全的可变字符串序列

4.StringBuilder和String相互转换

// string转换成StringBuilder
String str = "hello";
StringBuilder sb = new StringBuilder(str);
System.out.println(sb);  // hello
// StringBuilder转换成String
String s = sb.toString();
System.out.println(s);  // hello

 5. String类特点:
   *     一切都是对象,字符串事物 "" 也是对象
   *     类是描述事物,String类,描述字符串对象的类
   *     所有的 "" 都是String类的对象
   *      字符串是一个常量,一旦创建,不能改变

6.String类构造方法及代码展示

public class StringTest02 {
    public static void main(String[] args) {
        String s1="abcdefgh";
        char c = s1.charAt(2);//获取字符串中指定索引位置的元素
        System.out.println(c);

        String s2=s1.concat("xyz");//字符串的拼接,把s1字符串拼接上Xyz
        System.out.println(s2);

        boolean b1 = s1.contains("x");
        boolean b2 = s2.contains("x");
        System.out.println(b1);
        System.out.println(b2);

        String  s3="JavaTest.txt";
        boolean b3=s3.endsWith(".txt");//判断字符串是否以.txt结尾,常常用来判断文件名的后缀
        System.out.println(b3);

        String s4="abcdefcdxyz";
        byte[] bytes1=s4.getBytes();//把字符串按照ASCII码表  解析成  byte数组
        char[] chars1=s4.toCharArray();//把字符串  转换成 字符数组

        String s5="Bad weather fuck the weather";
        String s6=s5.replace("fuck","***");//把字符串中出现的fuck替换为***
        System.out.println(s6);

        String s7="abcdefg";
        String s8 = s7.substring(2,5);
        System.out.println(s8);

        String s9="app/code/java/day01";
        String[] split= s9.split( "/");//接 / 拆分字符串形成字符串数组["app”,"code","java","day01"]

        String s10="   面包  " ;
        System.out.println(s10);
        String s11=s10.trim();//取出字符串前后的空格
        System.out.println(s11.replace("",""));
    }
}
public class StringTest01 {
    public static void main(String[] args) {
        String s1="abc";//引用内存中abc字符串的地址
        System.out.println(s1);

        String s2=new String();//创建一个空字符串
        System.out.println(s2);

        byte[] bytes1={97,98,99,100,101,102,103,104};//byte范围是-128 --- 127
        String s3=new String(bytes1); //把byte数组中的整数值按照ASCII码表解析成字符串 ---》abcdefgh
        System.out.println(s3);

        byte[] bytes2={97,98,99,100,101,102,103,104};// 照ASCII码表解析 abcdefgh
        String s4=new String (bytes2, 2,3);// 把ute数组中的整数值,从索引2的元素开始截取3个长度,按照ASCII码表解析成字符---) cde
        System.out.println(s4);

        char[] chars1={'a', 'b', 'c', 'd','e'};
        String s5=new String(chars1); //把字符数组转换成字符串---》abcde
        System.out.println(s5);

        char[] chars2={'a', 'b','c', 'd','e'};
        String s6=new String(chars2,2,2);//把字符数组索2的元素开始截取2个长度转换成字符串---》cd
        System.out.println(s6);

        String s7=new String("abcd");//abcd
        System.out.println(s7);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值