Java char数组到int

Kyl*_*yle 13 java

是否可以将char[]包含数字的数组转换为int

Joa*_*uer 21

是否char[]包含构成数字数字的unicode字符?在这种情况下,只需从中创建一个String char[]并使用Integer.parseInt:

char[] digits = { '1', '2', '3' };
int number = Integer.parseInt(new String(digits));
Run Code Online (Sandbox Code Playgroud)

  • 从Java 9开始,可以使用`Integer.parseInt(CharBuffer.wrap(digits),0,digits.length,10)`避免复制数组。 (2认同)

Tha*_*lur 10

更高性能和更清晰的代码(并且不需要分配新的String对象):

int charArrayToInt(char []data,int start,int end) throws NumberFormatException
{
    int result = 0;
    for (int i = start; i < end; i++)
    {
        int digit = (int)data[i] - (int)'0';
        if ((digit < 0) || (digit > 9)) throw new NumberFormatException();
        result *= 10;
        result += digit;
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

  • 无需将`char`强制转换为`int`。结果为* = 10; 结果+ =数字;不比简单的结果=结果* 10 +数字; (2认同)

小智 7

char[] digits = { '0', '1', '2' };
int number = Integer.parseInt(String.valueOf(digits));
Run Code Online (Sandbox Code Playgroud)

这也有效.