① java字元串連接
1. String類是final修飾的不可變類,+號運算,會創建一些對象進行操作。
StringBuffer與StringBuilder,是可改變的對象,每當使用這兩個對象對字元串做操作時, 實際上是在一個對象上操作的,所以速度快 .
2. StringBuilder:線程非安全的
StringBuffer:線程安全的
3. 大量字元串數據時的性能 StringBuilder > StringBuffer >String
使用情況的說明:
1. String + : 適合比較少量的字元串數據拼接
(比如System.out.println("姓名:"+name+"年齡:"+age))
2. StringBuilder : 大量字元串數據, 單線程下使用
(比如,一個main線程里進行,無其他線程)
3.StringBuffer : 大量字元串數據, 多線程下使用
(比如,多個Thread去操作)
② java字元串拼接
//第一種
StringBuffer sb=new StringBuffer();
Set keySet = State.keySet();//返回鍵的集合
for(Object key:keySet){
sb.append(key);
sb.append(",");
}
//第二種
Set keySet = State.keySet();//返回鍵的集合
Iterator it = keySet.iterator();
while(it.hasNext()) //第一種迭代方式取鍵值
{
Object key = it.next();
sb.append(key);
sb.append(",");
}
//第三種
Iterator
i=State.entrySet().iterator();
while(i.hasNext()){//只遍歷一次,速度快
Map.Entry
e=(Map.Entry)i.next();
sb.append(e.getKey());
sb.append(",");
}
//逗號隔開 :無需判斷是不是只有一個值,取出的值再去掉逗號就好了sb.subString(0,sb.length()-1)。
僅供參考,未測試
③ Java數組拼接字元串
1、代碼如下
publicstaticvoidmain(String[]args){
Stringstr[]={"a","b","c","d","e","f","g","h","i"};
System.out.println("字元串數組長度:"+str.length);
System.out.println("拼接後的字元串長度:"+method(str).length());
System.out.println("拼接後的字元串:"+method(str));
}
publicstaticStringmethod(String[]str){
Stringrs="";
for(Strings:str){
rs+=s;
}
returnrs;
}
2、效果如圖