字符数组或字符串生成器

时间:2019-03-07 05:18:12

标签: java char stringbuilder

我想知道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);
}

3 个答案:

答案 0 :(得分:0)

StringBuilder只是char []的包装,添加了必要的功能,例如根据需要调整数组的大小;插入/删除等时移动元素。

直接将char []用于某些用途可能会稍快一些,但是您会丢失(或必须重新实现)许多有用的功能。

答案 1 :(得分:0)

charArray在性能和可读性方面也很不错,但是很难维护这样的代码。它可能会导致错误,如Null指针。您只需要使用char []代码添加空检查。

另一方面,StringBuffer在内部使用char。因此,这里的char更好,而且通过这样做我们不会创建Object。内存的观点。最好不要创建那个。

答案 2 :(得分:-1)

如果查看StringBuilder的{​​{3}},您会发现它在内部使用char[]表示缓冲的字符串。因此,两个版本的代码都在做非常相似的事情。但是,我投票赞成使用StringBuilder,因为它提供的API可以比其实现内的普通char[]提供更多的功能。