为什么进入循环后Pub会为空啊?

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/404389910386192.jpg "#left在循环体外的时候这个Pub还是正常的输出,可是进入循环后就为空了

这可能是因为在循环体内部,每次比较后都会对Pub进行修改,导致Pub的值被不断地截取和更新。当循环结束后,Pub的值可能已经被修改为空字符串或者被截取成了一个非常短的字符串。因此,在循环体外部输出Pub时,Pub的值为空。

为了避免这个问题,可以在循环体内部使用一个临时变量来存储Pub的值,而不是直接对Pub进行修改。例如:

Pub=strs[strs.length-1];
String temp = Pub;
for (int i = 0; i < strs.length - 1; i++) {
    for (int j = 0; j < temp.length(); j++) {
        if (strs[i].charAt(j) != temp.charAt(j)) {
            temp = temp.substring(0, j);
            break;
        }
    }
}
Pub = temp;

这样,每次循环时,都是对临时变量temp进行修改,而不是对Pub进行修改。在循环结束后,再将temp的值赋给Pub即可。

img


这里赋值,就是null了。