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

问题

我怎么能把JavaCharSequence转换成aString


#1 热门回答(278 赞)

通过调用其toString()方法。

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


#2 热门回答(83 赞)

这里有一个微妙的问题,有点像陷阱。
ThetoString()方法有一个基础实现,在Object.CharSequence是一个接口;尽管thetoString()方法作为该接口的一部分出现,但在编译时没有任何内容会强制你覆盖它并遵守CharSequence``toString()方法的javadoc对toString()方法的附加约束。即它应该返回一个字符串,其中包含charAt()返回的顺序中的字符。

你的IDE甚至不会通过提醒你,你可能应该覆盖toString()来帮助你。例如,在intellij中,如果你创建newCharSequenceimplementation,这将是你将看到的:http://puu.sh/2w1RJ。注意缺少toString()

如果你依赖toString()任意的CharSequence,那么它的工作原理应该让CharSequence的实现者正确地完成了他们的工作。但如果你想完全避免任何不确定性,你应该使用aStringBuilderappend(),如下所示:

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

#3 热门回答(7 赞)

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

String.valueOf(charSequence)

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

当方法可以返回acharSequencenull值时,这很有用。