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類!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章