欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-06 22:35:20
...

在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类!