如何将Java CharSequence转换为字符串?
当前回答
如果你想转换一个CharSequence数组, 你可以简单地这样做,也可以将它存储在一个String[]变量中。
CharSequence[] textMsgs = (CharSequence[])sbm.getNotification().extras.get(Notification.EXTRA_TEXT_LINES);
if (textMsgs != null) {
for (CharSequence msg : textMsgs) {
Log.e("Msg", msg.toString());
}
}
其他回答
你也可以下载Stringbuilder。
new StringBuilder(charSequence).toString();
如果你想转换一个CharSequence数组, 你可以简单地这样做,也可以将它存储在一个String[]变量中。
CharSequence[] textMsgs = (CharSequence[])sbm.getNotification().extras.get(Notification.EXTRA_TEXT_LINES);
if (textMsgs != null) {
for (CharSequence msg : textMsgs) {
Log.e("Msg", msg.toString());
}
}
通过调用它的toString()方法。
返回一个字符串,其中包含此序列中的字符,其顺序与此序列相同。字符串的长度就是这个序列的长度。
你可以直接使用String.valueOf()
String.valueOf(charSequence)
虽然这与toString()相同,但它在实际调用toString之前对charSequence进行空检查。
当方法可以返回charSequence或null值时,这很有用。
这里有一个微妙的问题,有点棘手。
toString()方法在Object中有一个基本实现。CharSequence是一个接口;尽管toString()方法作为该接口的一部分出现,但在编译时没有任何东西会强迫你重写它,并遵守CharSequence toString()方法的javadoc对toString()方法施加的额外约束;即它应该返回一个字符串,该字符串包含由charAt()返回的字符顺序。
您的IDE甚至不会提醒您可能应该重写toString()来帮助您。例如,在intellij中,如果您创建了一个新的CharSequence实现,您将看到:http://puu.sh/2w1RJ。请注意toString()的缺失。
如果你依赖于任意CharSequence上的toString(),只要CharSequence实现者正确地完成了他们的工作,它就应该工作。但如果你想避免任何不确定性,你应该使用StringBuilder和append(),如下所示:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
推荐文章
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 我可以将c#字符串值转换为转义字符串文字吗?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 在c#中解析字符串为日期时间
- 如何在Java中按两个字段排序?
- 文件之间的差异。路径中的分隔符和斜杠
- 字符串中的单词大写
- 在方法参数中使用NotNull注释
- Spring MVC中处理可选参数的@RequestParam