如何将 CharSequence 转换为字符串?

新手上路,请多包涵

如何将 Java CharSequence 转换为 String

原文由 Belgi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

通过调用其 toString() 方法。

返回包含此序列中字符的字符串,其顺序与此序列相同。字符串的长度就是这个序列的长度。

原文由 Mike Samuel 发布,翻译遵循 CC BY-SA 3.0 许可协议

这里有一个微妙的问题,有点棘手。

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

原文由 fragorl 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题