3

在我编码的各个地方,我需要将整数值更改为字符串值。要将强制转换整数转换为字符串,我使用将 "" 连接到整数

我发现了另一种使用String.parseInt(..); 方法。

我的问题是我不知道在 java 中进行铸造的优化方法是什么以及它是如何优化的?除了我的代码,还有其他方法可以转换吗?

我的示例代码:

int total = mark1 + mark2;
String str_total = ""+total;  // currently doing.

…………

String str_total = String.parseInt(total);  // i am planning to do.
4

5 回答 5

1

您还可以使用 -

String str_total = String.valueOf(total); 

或者

在代码中使用 Integer rahter than int 然后在 Integer 上使用 toString()

Integer total = mark1 + mark2;
String str_total = total.toString();

在您的代码中 -

字符串 str_total = "" + 总计;

实际上,您首先创建了 2 个新的字符串对象,""然后是str_total

但在我的代码中只会one new string object被创建。

String 类中 valueOf 的实现如下 -

   public static String valueOf(int i) {
        return Integer.toString(i);
    }

这里 toString 将创建一个新的 String 对象

于 2012-07-11T07:39:29.410 回答
1

String.valueOf(int)方法调用Integer.toString(int).

进行字符串连接(""+i),首先i转换为an Integer,然后Integer.toString调用该函数以获取String整数的值。

因此调用String.valueOf(int)将比字符串连接执行得更好,因为它跳过了Integer对象的创建。

于 2012-07-11T07:52:20.497 回答
0
String str_total = String.valueOf(total); 

String.valueOf(int)""+int所以更喜欢使用更有效String.valueOf(int)

有关性能测量,请参阅链接。

在 Jdk > 1.5 你也可以使用它。

String str_total= String.format ("%d", total);
于 2012-07-11T07:42:35.950 回答
0

另一种方法:

int intValue = 1;    
String str1 = String.format("%d", intValue);

您还可以控制值的显示方式(前导零、基数等)。在这里找到更多信息。

很酷的一点是,在我看来,这

String str2 = String.format("Blabla %d blupp %dm etc", intValue1, intValue2);

看起来更具可读性(如果您熟悉格式),那么

String str3 = "Balbla " + intValue1 + " blupp " + intValue2 + "m etc"; 

(+ 你可以更好地控制它的显示方式)。

于 2012-07-11T07:43:42.457 回答
0

由于Integer不能保持如此大的值,这将导致它用科学记数法表示,我认为

Integer.toString()

将完全工作。

如果你想以某种方式格式化你的号码,你应该NumberFormat像这样使用:

Integer myInt = 31535468;
NumberFormat nf = NumberFormat.getInstance();
String myString = nf.format(myInt);

我认为使用NumberFormat是这里最传统的方式。

于 2012-07-11T07:57:13.133 回答