Java奇怪的Integer.parseInt问题(java新手)

时间:2015-09-22 18:06:36

标签: java string concatenation tostring parseint

您好我希望字符串连接两个数字,如下面的代码所示:

tmp2 = Integer.toString(preresult) + tmp2.substring(2, tmp2.length());

Tmp2是从之前声明的字符串。 Preresult是一个包含数字的整数。如果我打印这一行,它会添加两个值而不是字符串连接。

如果我将Integer.toString(preresult)更改为例如Integer.toString(5),那么它就像我希望的那样将字符串连接起来。但是使用Integer.toString(preresult)它会添加两个数字而不是字符串连接。

preresult的代码:

preresult = Integer.parseInt(tmp2.substring(0, 1)) + Integer.parseInt(tmp2.substring(1, 2));

//从tmp2中选取数字并将它们加在一起。如果我打印preresult它给我一个int(例如9)

请再次帮我连接这两个字符串,而不是添加它们:

tmp2 = Integer.toString(preresult) + tmp2.substring(2, tmp2.length()); 

java新手请怜悯:))

2 个答案:

答案 0 :(得分:1)

您是否正在寻找此类操作

class String1
{
    public static void main(String args[])
    {
        int a = 100;
        int b = 200;
        String s1 = Integer.toString(a);
        String s2 = Integer.toString(b);
        System.out.println(s1+s2);
    }
}

输出 - 100200

答案 1 :(得分:0)

你给我们的行连接String s,但也许你感到困惑,因为该行之前总结了它们:

// tmp2 == "45" (taken from your comment)

preresult = Integer.parseInt(tmp2.substring(0, 1)) + Integer.parseInt(tmp2.substring(1, 2));
//                           |------ "4" -------|                     |-------- "5" -----|
//          |--------------- 4 -----------------|    |------------------ 5 --------------|
// preresult == 4 + 5 == 9

println(tmp2); // prints the "45" (unchanged)

tmp2 = Integer.toString(preresult) + tmp2.substring(2, tmp2.length());
//                      |-- 9 --|                     |"45"|
//     |----------- "9" ---------|   |------------- "" -------------|
// tmp2 == "9" + "" == "9"

println(tmp2); // prints "9"

所以你的第一行总结了两个数字4和5,结果是9.你给我们的行只是连接结果"9"(作为String)使用另一个空String,因此保留"9"