Arrays.toString() 的用法以及StringBuffer与StringBuider的区别

在Java编程输出数组,若是直接输出会发现得到的是一些地址,类似于 [Ljava.lang.String;@67b64c45。此时就需要调用Arrays.toString()了!
Java字符串用法中的StringBuffer与StringBuider区别也比较容易混淆,下面是我的一些笔记!

Arrays.toString()

public class Employee {
public static void main(String [] args)
    {
    String str = "x_u_m_c";
    String A[] = str.split("_");
    System.out.print(A);
    }
    //[Ljava.lang.String;@67b64c45
public class Employee {
public static void main(String [] args)
    {
    String str = "x_u_m_c";
    String A[] = str.split("_");
    System.out.print(Arrays.toString(A));
    }
    //[x, u, m, c]

原因在于在Java中数组不能够直接输出,当然了,你可以使用for循环遍历输出数组

public class Employee {
public static void main(String [] args)
    {
    String str = "x_u_m_c";
    String A[] = str.split("_");
   for(int i=0;i<A.length;i++)
    {
    System.out.println(A[i]+"");
    }
    }
    //x u m c

而借助Arrays.toString() 可以直接输出数组,不用遍历了!

StringBuffer

String的值一旦确定就不可变,而且每次对String进行操作时,都会生成新的对象,效率低,占用大量的内存,对少量数据操作时可以使用!
StringBuffer类在内部的实现方式和String不一样,在对StringBuffer进行操作时,不会生成新的对象,不会占用大量内存!StringBuffer和String创建对象方式不一样,它必须得通过new来创建对象,默认分配16字节长度的缓冲区!当字符串超过该大小时,会自动增加缓冲区长度,而不是生成新的对象。

StringBuffer str = new StringBuffer();
StringBuffer str1 = new StringBuffer("xmc");

StringBuffer类的方法和Python中的list比较类似!

  • append()
    用于向字符串末尾添加内容!
StringBuffer str = new StringBuffer("xmc");
str.append(is);
//xmcis
  • deleteCharAt()
    用于删除指定位置的字符
StringBuffer str = new StringBuffer("xmcis");
str.deleteCharAt(3,5)//删除索引值3~5之间的值,不包括5
//xmc
  • setCharAt()
    用来修改指定位置的字符
StringBuffer str = new StringBuffer("xmcis");
str.setCharAt(3,'p');
//xmcps
  • insert()
    用来在指定位置插入字符串
StringBuffer str = new StringBuffer("xmc");
str.insert(2,"is")
//xmcis

StringBulider

StringBuilder类和StringBuffer类的功能基本相同,用法基本差不多,区别在于StringBuffer类的方法是多线程安全的,而StringBuilder是单线程线程安全的!

总结

在对少量数据进行操作时使用String类,在对大量数据且是多线程时使用StringBuffer类,在对大量数据且是单线程时使用StringBulider类!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值