Java中如何将字符串String转换为整形Integer?

0 投票
最新提问 12月 31, 2016 用户: bczs (180 分)
修改于 1月 1, 2017 用户:bczs
Java中如何将String转换为int?

我的字符串包含数字,我想返回它表示的数字。

例如,给出了字符串"1234"的结果应该是数字1234。

2 个回答

0 投票
最新回答 1月 1, 2017 用户: linfeng (520 分)

有两种方法︰

Integer foo = Integer.valueOf(str);
// or
int foo = Integer.parseInt(str);

有这些方法略有区别︰

  • valueOf返回java.lang.Integer一个新的或缓存实例
  • parseInt返回原始int.

其它类型与此类似︰ Short.valueOf/parseShort, Long.valueOf/parseLong等。

0 投票
最新回答 1月 1, 2017 用户: 高手 (380 分)

您还可以首先删除所有非数值字符,然后再解析 int:

string mystr = mystr.replaceAll( "[^\\d]", "" );
int number= Integer.parseInt(mystr);

但是要注意,这仅适用于非负数。如果是负数,还可以自己写个函数如下。

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;
}

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...