由下面的例子可看出,"+" 和 append() 方法都可以对任意类型数据进行拼接,而 concat() 方法则需要将其他类型的数据则要转化为字符串后才能拼接
package 练习题;
import java.util.ArrayList;
import java.util.List;
public class 练习题29 {
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
list.add(100);
list.add('日');
list.add("冲刺,决胜高考!");
StringBuffer sb = new StringBuffer();
for(char i = 0; i < list.size(); i++){
sb.append(list.get(i));
}
System.out.println(sb);
String s1 = "";
for(char i = 0; i < list.size(); i++){
s1 = s1 + list.get(i);
}
System.out.println(s1);
String s2 = "";
for(char i = 0; i < list.size(); i++){
s2 = s2.concat( list.get(i).toString());
}
System.out.println(s2);
String str1 = "";
System.out.println(str1.concat(null)); //运行后报空指针异常NullPointerException
String str2 = null;
System.out.println(str2.concat("asdf"));//运行后报空指针异常NullPointerException
}
}
输出结果:
100日冲刺,决胜高考!
100日冲刺,决胜高考!
100日冲刺,决胜高考!
Exception in thread "main" java.lang.NullPointerException
① String 类的 concat() 方法(只能用于拼接字符串,不能拼接其他类型的数据)将指定的字符串拼接到该字符串的末尾。并且字符串本身和拼接的字符串都不能为null,否则运行程序后会报空指针异常NullPointerException (编译时没有报错)
② “+” 可以对字符、数字、字符串等数据类型的拼接
③ StringBuffer 类的 append() 可以对字符,数字,字符串等数据类型的拼接,结果返回一个 StringBuffer 类型的对象