我想知道Java中的字符连接-以下哪种方法在可读性,维护和性能上都更好-“字符数组”或“字符串生成器”。
该方法必须从两个字符串中提取第一个字母,然后追加并返回。
例如: 输入1:ABC输入2:DEF->方法应返回AD。
使用字符串生成器:
private String getString(String str1, String str2) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(str1.charAt(0));
stringBuilder.append(str2.charAt(0));
return stringBuilder.toString();
}
使用char数组:
private String getString(String str1, String str2) {
char[] charArray = new char[2];
charArray[0] = str1.charAt(0);
charArray[1] = str2.charAt(0);
return String.valueOf(charArray);
}
答案 0 :(得分:0)
StringBuilder只是char []的包装,添加了必要的功能,例如根据需要调整数组的大小;插入/删除等时移动元素。
直接将char []用于某些用途可能会稍快一些,但是您会丢失(或必须重新实现)许多有用的功能。
答案 1 :(得分:0)
charArray在性能和可读性方面也很不错,但是很难维护这样的代码。它可能会导致错误,如Null指针。您只需要使用char []代码添加空检查。
另一方面,StringBuffer在内部使用char。因此,这里的char更好,而且通过这样做我们不会创建Object。内存的观点。最好不要创建那个。
答案 2 :(得分:-1)
如果查看StringBuilder
的{{3}},您会发现它在内部使用char[]
表示缓冲的字符串。因此,两个版本的代码都在做非常相似的事情。但是,我投票赞成使用StringBuilder
,因为它提供的API可以比其实现内的普通char[]
提供更多的功能。