如何将Java CharSequence转换为字符串?
当前回答
最安全的方法
String string = String.valueOf(charSequence);
让我们深潜
有3种常见的方法,我们可以尝试将CharSequence转换为String:
类型转换:字符串字符串=(字符串)charSequence; 调用toString(): String String = charSequence.toString(); String. valueof()方法:String String = String. valueof (charSequence);
如果我们运行这些where CharSequence CharSequence = "a simple string";然后这三个都将产生预期的结果。
当我们不确定CharSequence的性质时,问题就出现了。事实上,CharSequence是其他几个类实现的接口,如- String, CharBuffer, StringBuffer等。因此,将String转换为CharSequence是一个简单的赋值操作,不需要强制转换或任何东西。但是,对于相反的“向上casting”来说,这是不正确的。
如果我们确定CharSequence实际上是一个String对象,只有这样我们才能使用选项1-类型转换。否则,我们将得到一个ClassCastException。在这种情况下,选项2和3是安全的。
另一方面,如果CharSequence为空,那么选项2,调用toString(),将给出一个NullPointerException。
现在,在内部,String.valueOf()方法在执行空检查后调用toString()方法。所以,这是最安全的方法。JavaDoc:
如果参数为null,则字符串等于"null";否则,返回obj.toString()的值。
请注意:如果CharSequence为空,则string . valueof()方法返回字符串- "null",而不是空值。
其他回答
如果你想转换一个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值时,这很有用。
最安全的方法
String string = String.valueOf(charSequence);
让我们深潜
有3种常见的方法,我们可以尝试将CharSequence转换为String:
类型转换:字符串字符串=(字符串)charSequence; 调用toString(): String String = charSequence.toString(); String. valueof()方法:String String = String. valueof (charSequence);
如果我们运行这些where CharSequence CharSequence = "a simple string";然后这三个都将产生预期的结果。
当我们不确定CharSequence的性质时,问题就出现了。事实上,CharSequence是其他几个类实现的接口,如- String, CharBuffer, StringBuffer等。因此,将String转换为CharSequence是一个简单的赋值操作,不需要强制转换或任何东西。但是,对于相反的“向上casting”来说,这是不正确的。
如果我们确定CharSequence实际上是一个String对象,只有这样我们才能使用选项1-类型转换。否则,我们将得到一个ClassCastException。在这种情况下,选项2和3是安全的。
另一方面,如果CharSequence为空,那么选项2,调用toString(),将给出一个NullPointerException。
现在,在内部,String.valueOf()方法在执行空检查后调用toString()方法。所以,这是最安全的方法。JavaDoc:
如果参数为null,则字符串等于"null";否则,返回obj.toString()的值。
请注意:如果CharSequence为空,则string . valueof()方法返回字符串- "null",而不是空值。
你也可以下载Stringbuilder。
new StringBuilder(charSequence).toString();
推荐文章
- 如何显示有两个小数点后的浮点数?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 在Lua中拆分字符串?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?
- Hibernate中不同的保存方法之间有什么区别?
- Java 8流和数组操作
- Java Regex捕获组