我想将我的布尔对象转换为String。以下哪个是更好/正确的做法以及为什么?
boolean booleanValue = true;
String strValue = Boolean.toString(booleanValue);
或
boolean booleanValue = true;
String strValue = booleanValue + "";
修改
以下答案提示我添加更多
boolean booleanValue = true;
String strValue = String.valueOf(booleanValue);
以及Integer
Integer i = 10;
String strValue = i.toString();
所以,最后我们有三种不同的类型Boolean.toString()
,与+
联合,String.valueOf()
将任何数据类型转换为String
答案 0 :(得分:1)
使用String.valueOf(booleanValue)
或Boolean.toString(booleanValue)
,因为它们既简洁又清楚地传达了您正在尝试做的事情。避免将字符串与+ ""
连接起来,因为它稍微慢一些(虽然可以忽略不计)并且不会传达意义以及其他两个选项。
答案 1 :(得分:1)
前者可以更快地执行,而后者占用更少的屏幕空间。
顺便说一句,在你的程序的用户界面中,普通人永远不应该看到单词true / false,所以第三种方式是(booleanValue ? "yes" : "no")
,翻译成适当的语言。或开/关或启用/禁用或可见/隐藏等
答案 2 :(得分:1)
给出以下示例:
// One
String value = Integer.toString(someValue);
// Two
String value = someValue + "";
// let me add Three
String value = String.valueOf(someValue);
我将建议使用String.valueOf()。原因是此调用未明确包含参数的类型,因此如果稍后将其从int
更改为double
或boolean
,则无需修改代码。
第二个我会解决它的问题,因为隐式创建一个StringBuilder并附加组件。
我猜测#1与#3相比只有一点点快,所以我留在3。
答案 3 :(得分:1)
在您提到的两个选项中,请选择第一个用于生产的选项。
仅将第二个选项用于调试。 例如,您想要应用print语句来显示任何特定方法的输出。
除了以上两个选项,您可以使用String.valueOf(boolean_obj)
方法。
好处是如果布尔对象为其分配了空值,它将被指定为空字符串,而在使用Boolean.toString(boolean_obj)
时它将抛出NullPointerException
。