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

问题描述 投票:172回答:3

如何将Java CharSequence转换为String

java string charsequence
3个回答
309
投票

通过调用其toString()方法。

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


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();

13
投票

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

String.valueOf(charSequence)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.