问题
我怎么能把JavaCharSequence
转换成aString
?
#1 热门回答(278 赞)
通过调用其toString()
方法。
以与此序列相同的顺序返回包含此序列中字符的字符串。字符串的长度将是该序列的长度。
#2 热门回答(83 赞)
这里有一个微妙的问题,有点像陷阱。
ThetoString()
方法有一个基础实现,在Object
.CharSequence
是一个接口;尽管thetoString()
方法作为该接口的一部分出现,但在编译时没有任何内容会强制你覆盖它并遵守CharSequence``toString()
方法的javadoc对toString()
方法的附加约束。即它应该返回一个字符串,其中包含charAt()
返回的顺序中的字符。
你的IDE甚至不会通过提醒你,你可能应该覆盖toString()
来帮助你。例如,在intellij中,如果你创建newCharSequence
implementation,这将是你将看到的:http://puu.sh/2w1RJ。注意缺少toString()
。
如果你依赖toString()
任意的CharSequence
,那么它的工作原理应该让CharSequence
的实现者正确地完成了他们的工作。但如果你想完全避免任何不确定性,你应该使用aStringBuilder
和append()
,如下所示:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
#3 热门回答(7 赞)
你可以直接使用String.valueOf()
String.valueOf(charSequence)
虽然这与toString()
相同,但在实际调用toString之前对48881064进行了空检查。
当方法可以返回acharSequence
或null
值时,这很有用。