如何将Java CharSequence
转换为String
?
答案 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
实施者正确地完成了工作。但是如果你想完全避免任何不确定性,你应该使用StringBuilder
和append()
,如下所示:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
答案 2 :(得分:13)
您可以直接使用String.valueOf()
String.valueOf(charSequence)
虽然这与toString()
相同,但它在实际调用toString之前对charSequence
进行了空检查。
当方法可以返回charSequence
或null
值时,这非常有用。