如何将一串数字转换为整数数组?

Gar*_*ett 0 java arrays string integer char

我有一个类似的字符串,"12345"并且想将它转换为整数数组{1,2,3,4,5}.

我想要一种将字符转换为整数的方法,'1' -> 1. 以及另一种创建数组的方法。

这是我到目前为止:

public static int charToInt(char character) {
    int newInt;

    newInt = (int) character;

    return newInt;
}

public static int[] convertStringToIntArray(String keyString) {
    int keyLength = keyString.length();
    int element;

    int[] intArray = new int[keyLength];

    for (element = 0; element < keyLength; element++) {
        intArray[element] = charToInt(keyString.charAt(element));
    }

    // return
    return intArray;
}
Run Code Online (Sandbox Code Playgroud)

我认为问题出在charToInt方法上。我认为它正在将 转换char为它的ascii值。但我不确定另一种方法是否正确。

任何帮助将不胜感激。

Ale*_*nko 5

由于 Java 1.5Character有一个有趣的方法getNumericValue,它允许将 char 数字转换为 int 值。

所以在Stream API的帮助下,整个方法convertStringToIntArray可以改写为:

public static int[] convertStringToIntArray(String keyString) {
    Objects.requireNonNull(keyString);
    return keyString.chars().map(Character::getNumericValue).toArray();
}
Run Code Online (Sandbox Code Playgroud)