① 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、效果如图