哪一个更好地将对象转换为字符串" .toString()"或者与+""结合或" String.valueOf"在java?

时间:2017-04-26 05:18:53

标签: java type-conversion

我想将我的布尔对象转换为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

4 个答案:

答案 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更改为doubleboolean,则无需修改代码。

第二个我会解决它的问题,因为隐式创建一个StringBuilder并附加组件。

我猜测#1与#3相比只有一点点快,所以我留在3。

答案 3 :(得分:1)

在您提到的两个选项中,请选择第一个用于生产的选项。

仅将第二个选项用于调试。 例如,您想要应用print语句来显示任何特定方法的输出。

除了以上两个选项,您可以使用String.valueOf(boolean_obj)方法。 好处是如果布尔对象为其分配了空值,它将被指定为空字符串,而在使用Boolean.toString(boolean_obj)时它将抛出NullPointerException