如何将String转换为int?

"1234"  →  1234

当前回答

我有点惊讶,没有人提到将String作为参数的Integer构造函数。

因此,这里是:

String myString = "1234";
int i1 = new Integer(myString);

Java 8-整数(字符串)。

当然,构造函数将返回类型Integer,并且取消装箱操作将值转换为int。


注1:需要注意的是:此构造函数调用parseInt方法。

public Integer(String var1) throws NumberFormatException {
    this.value = parseInt(var1, 10);
}

注2:已弃用:@deprecated(因为=“9”)-JavaDoc。

其他回答

手动执行:

public static int strToInt(String str){
    int i = 0;
    int num = 0;
    boolean isNeg = false;

    // Check for negative sign; if it's there, set the isNeg flag
    if (str.charAt(0) == '-') {
        isNeg = true;
        i = 1;
    }

    // Process each character of the string;
    while( i < str.length()) {
        num *= 10;
        num += str.charAt(i++) - '0'; // Minus the ASCII code of '0' to get the value of the charAt(i++).
    }

    if (isNeg)
        num = -num;
    return num;
}

将字符串转换为int比仅转换数字更复杂。您已经考虑了以下问题:

字符串是否只包含数字0-9?字符串之前或之后的-/+怎么了?这是可能的吗(指会计数字)?MAX_-/MIN_INFINITY怎么了?如果字符串为99999999999999999999,会发生什么?机器可以将此字符串视为int吗?

这可以起作用,

Integer.parseInt(yourString);

我们可以使用Integer包装器类的parseInt(Stringstr)方法将String值转换为整数值。

例如:

String strValue = "12345";
Integer intValue = Integer.parseInt(strVal);

Integer类还提供了valueOf(Stringstr)方法:

String strValue = "12345";
Integer intValue = Integer.valueOf(strValue);

我们还可以使用NumberUtils实用程序类的toInt(StringstrValue)进行转换:

String strValue = "12345";
Integer intValue = NumberUtils.toInt(strValue);

将String转换为Int的一些方法如下:

可以使用Integer.parseInt():字符串测试=“4568”;int new=Integer.parseInt(测试);也可以使用Integer.valueOf():字符串测试=“4568”;int new=Integer.valueOf(测试);