如何在Java中将CharSequence转换为String?

时间:2011-10-10 00:35:36

标签: java string charsequence

如何将Java CharSequence转换为String

3 个答案:

答案 0 :(得分:309)

通过调用其toString()方法。

  

以与此序列相同的顺序返回包含此序列中字符的字符串。字符串的长度将是该序列的长度。

答案 1 :(得分:86)

这里有一个微妙的问题,有些问题。

toString()方法在Object中有一个基本实现。 CharSequence是一个界面;尽管toString()方法作为该接口的一部分出现,但在编译时没有任何内容会强制您覆盖它并遵守CharSequence toString()方法的javadoc放置的其他约束在toString()方法;即它应该返回一个包含charAt()返回的字符的字符串。

您的IDE甚至不会通过提醒您可能覆盖toString()来帮助您。例如,在intellij中,如果您创建新的CharSequence实现,则会看到这一点:http://puu.sh/2w1RJ。请注意缺少toString()

如果您依赖toString()任意CharSequence,那么应该工作,前提是CharSequence实施者正确地完成了工作。但是如果你想完全避免任何不确定性,你应该使用StringBuilderappend(),如下所示:

final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();

答案 2 :(得分:13)

您可以直接使用String.valueOf()

String.valueOf(charSequence)

虽然这与toString()相同,但它在实际调用toString之前对charSequence进行了空检查。

当方法可以返回charSequencenull值时,这非常有用。