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