繁体   English   中英

什么是“Integer.valueOf()。intValue()”应该怎么做?

[英]What is “Integer.valueOf().intValue()” supposed to do?

这是我无法理解的java代码行。

 String line = "Some data";//I understand this line
 int size;//I understand this line too

 size = Integer.valueOf(line,16).intValue();//Don't understand this one

我所知道的是Integer.ValueOf(行 )与Integer.parseInt(行)相同,是不是这样? 如果我错了,请纠正我; 谢谢。

Integer.ValueOf(line,16)将字符串值line转换为Integer对象。 在这种情况下,基数为16。

intValue()从上面创建的Integer object获取int值。

此外,上述两个步骤相当于Integer.parseInt(line,16)

要获得更多信息,请参阅Integer类的Java API文档。

是的,这相当于:

size = Integer.parseInt(line, 16);

实际上,在查看实现时,现有代码实际上是有效实现的:

size = Integer.valueOf(Integer.parseInt(line, 16)).intValue();

这显然毫无意义。

顺便说一下,前一行中-1的赋值是没有意义的。 只有在Integer.parseInt抛出异常时仍然可以读取该值才有意义,但由于size的范围与调用Integer.valueof块相同,因此在异常后它不会在范围内无论如何。

请查看左侧变量的数据类型。

public class Test {
    public static void main(String[] args) {
        String s = "CAFE";
        Integer m = Integer.valueOf(s, 16);
        int n = m.intValue();

        System.out.println(n);
    }
}

Integer是一个包装int的引用类型,它是一种基本类型。

" = Integer.valueOf().intValue()"

和示例:

String myNumber = "54";    
int c = Integer.valueOf(myNumber).intValue();  // convert strings to numbers

结果:

54 // like int (and before was a String)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM