我想将我的布尔对象转换为字符串。以下哪项是更好/正确的方法,为什么?
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()
Concat将任何数据类型转换为String
使用String.valueOf(booleanValue)
或Boolean.toString(booleanValue)
,因为它们既简洁又清楚地传达您要做的事情。避免将字符串与+ ""
串联,因为它稍慢(尽管可以忽略(,并且不会传达其他两个选项。
前者可以更快地执行,而后者的屏幕空间更少。
顺便说一句,在您程序的用户界面中,普通人类永远不应该看到True/false单词,因此第三种方法是(booleanValue ? "yes" : "no")
,将其转换为适当的语言。或开/关或启用/禁用或可见/隐藏等等。
在您提到的两个选项中,请选择第一个用于生产使用的选项。
仅使用第二个选项进行调试。例如,您要应用打印语句,以显示任何特定方法的输出。
除了上述两个选项外,您可以选择String.valueOf(boolean_obj)
方法。优势是,如果布尔对象已分配为null,它将被分配为null字符串,就像在使用Boolean.toString(boolean_obj)
时一样,它将抛出NullPointerException
。
给出以下示例:
// One
String value = Integer.toString(someValue);
// Two
String value = someValue + "";
// let me add Three
String value = String.valueOf(someValue);
我会建议使用string.valueof((。原因是此调用不明确包含参数类型,因此,如果以后将其从int
更改为double
或boolean
,则无需修改代码。
第二个我会提出解决方案,因为隐式创建一个字符串构造器并附加组件。
我猜想与#3相比的#1速度更快,所以我呆在3中。