StringBuilder【类】Syetem【类】

本文深入探讨了Java中StringBuilder和StringBuffer类的使用技巧,包括构造方法、append方法及toString转换,对比了它们与String类在内存效率上的区别。通过实例展示了如何利用StringBuilder进行高效字符串操作,并介绍了System类的实用方法。

StringBuilder【类】Syetem【类】
在这里插入图片描述
1.StringBuffer【类】
*
append方法:往类中添加数据 【返回值还是本身】
*
insert方法:指定位置插入指定字符串 //参数:位置 字符串
*

  packagecn.com.abner.stringbuild;
    	* 
    import java.util.Scanner;
    	* 
    //一串字符串中,每3个插一个“,”
    	* 
    public class Demo4 {
    	* 
         public static void main(String[] args) {
    	* 
              Scanner inout=new Scanner(System.in);
    	* 
              System.out.println("请输入一串数字");
    	* 
              String sc=inout.next();      //123456789
    	* 
              StringBuffer a=new StringBuffer(sc);
    	* 
              for(int i=a.length()-3;i>0;i-=3) {
    	* 
                  a.insert(i, ",");                 //每3个插入“,”
    	* 
              }
    	* 
              System.out.println(a);            //123,456,789
    	* 
         }
    	* 
    }

2.StringBuilder【类】
*
StringBuilder【类】:字符串缓冲区
*
和String【类】的区别
*
String:在创建之后不能修改,底层是一个被final修饰的数组;在进行字符串的相加时,占用多个空间,效率低下
*
StringBuilde:字符串缓冲区,可以提高效率;底层是一个没有被final修饰的数组,可以改变长度
*
构造方法
*
空参数构造
*
带参数的构造
*
*

  packagecn.com.abner.stringbuild;
    	* 
    public class Demo {
    	* 
         public static void main(String[] args) {
    	* 
              StringBuilder bu1=new StringBuilder();
    	* 
              System.out.println("bu1 :"+bu1);  //null
    	* 
              StringBuilder bu2=new StringBuilder("abc");
    	* 
              System.out.println("bu2 :"+bu2);  //abc
    	* 
         }
    	* 
    }

***** 对象方法****
append方法:往类中添加数据 【返回值还是本身】

packagecn.com.abner.stringbuild;
public class Demo2 {
     public static void main(String[] args) {
          StringBuilder bu=new StringBuilder();
//        System.out.println("bu"+bu); //null
//        //append方法添加数据,返回值是this
//        StringBuilder bu1=bu.append("abc");
//        System.out.println("bu1"+bu1);    //abc
//        System.out.println(bu==bu1); //true         
          //append方法添加数据
          bu.append("abc");
          bu.append(111);
          System.out.println(bu);          
          bu.append("abc").append(111);
          System.out.println(bu);
     }
}
* 

toString方法:将StringBuilder对象转化为String对象

packagecn.com.abner.stringbuild;
public class Demo3 {
     public static void main(String[] args) {        
          //String->StringBuilder
          StringBuilder bu=new StringBuilder("abc");
          System.out.println(bu);      //abc
          //添加数据
          bu.append(1234);
          System.out.println(bu);      //abc1234
          //StringBuilder->String
          String a=bu.toString();
          System.out.println(a);       //abc1234     
     }
}

3.Syetem【类】
*
System.currentTimeMillis() //返回当前系统时间,毫秒值

packagecn.com.abner.system;
//获取循环输出1~9999的时间
public class Demo {
     public static void main(String[] args) {
          long s=System.currentTimeMillis();
          for(int i=1;i<=9999;i++) {
              System.out.println(i);
          }
          long e=System.currentTimeMillis();
          System.out.println("共耗时"+(e-s)+"毫秒");  //共耗时94毫秒
     }
}
* 

System.arraycopy(src, 0, dest, 0, 3); //将数组中指定数据拷贝到另一个数组中 //参数:src:源数组,srcPos:源数组的起始位置,dest:目标数组,destPos:目标数组的起始位置,Length:要复制的数组元素数量

packagecn.com.abner.system;
import java.util.Arrays;
/*将数组中指定数据拷贝到另一个数组中
参数:src:源数组
srcPos:源数组的起始位置
dest:目标数组
destPos:目标数组的起始位置
Length:要复制的数组元素数量
 */
public class Demo1 {
     public static void main(String[] args) {
          show1();
     }
     public static void show1() {
          //将src{1,2,3,4,5}中前三个元素复制到dest{5,6,7,8,9}前三个位置
          int[] src= {1,2,3,4,5};
          int[] dest={5,6,7,8,9};
          System.out.println("复制前"+Arrays.toString(dest));
          System.arraycopy(src, 0, dest, 0, 3);
          System.out.println("复制后"+Arrays.toString(dest));         
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abner G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值