将字符串转换为Integer和int

Nic*_*ick 4 java string integer

鉴于s已声明String ,以下5行代码产生相同的结果:

int i = Integer.valueOf(s);
int y = Integer.parseInt(s);
int j = Integer.valueOf(s).intValue();
Integer x = Integer.valueOf(s);
Integer k = Integer.valueOf(s).intValue();
Run Code Online (Sandbox Code Playgroud)

是否存在每个人都是首选代码的情况?看来,intInteger是可以互换的,并且.intValue()是不必要的.

Mic*_*rry 7

如果您需要int,请使用parseInt(),如果您需要Integer使用valueOf().虽然它们现在是可以互换的,但使用直接返回所需数据类型的那个仍然更有意义.(从历史上看,它们根本不可互换,这是在Java 5中使用自动装箱和拆箱引入的.)

intValue()您正在使用的方法只是将Integer类类型转换为int基元,因此使用它并且valueOf()是最糟糕的组合,您永远不想使用它.(没有什么不好的事情发生,它只是阅读时间更长,表现稍差,通常更多余.)

如果你不在乎或不知道,那我就用了parseInt().特别是作为初学者,你更想要原始类型而不是类类型.