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

Java weird Integer.parseInt issue (new to java)

你好,我想像下面的代码一样连接两个数字:

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

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

如果我将 Integer.toString(preresult) 更改为例如 Integer.toString(5),它会按照我希望的方式连接字符串。但是有了 Integer.toString(preresult) 它会添加两个数字而不是字符串连接。

预结果代码:

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

//它从 tmp2 中挑选数字并将它们相加。如果我打印预结果,它会给我一个整数(例如 9)

再次请帮我连接这两个字符串而不是相加:

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

新人java请手下留情:)

您是否正在寻找此类操作

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

您给我们的那行 确实 连接了 String,但您可能感到困惑,因为前面的行对它们求和:

// 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".