1

我正在为我正在处理的 java 项目创建一个特定于方法的方法。给定的 UML 指定了static byte[]接受参数的返回类型(String, byte)

到目前为止,看起来像这样:

public static byte[] convertNumToDigitArray(String number, byte numDigits) {

}

此方法应该将数字(作为字符串)转换为字节数组。排序必须从最高有效数字到最低有效数字。例如,如果数字字符串是“732”,那么数组的索引 0 应该包含 7。
最后一个参数 (numDigits) 应该与传入的字符串的长度匹配。

我该怎么做呢?

4

3 回答 3

3

可以使用 检索字符串中的每个字符charAt()。char 可以通过减法转换为其数字值,例如:

char c = number.charAt(0);
byte b = c - '0';
于 2012-11-02T22:46:12.690 回答
0

我不明白为什么我们需要如此复杂的代码。

只使用JDK附带的方法有什么问题

public static byte[] convertNumToDigitArray(String number, byte numDigits) {
    byte[] bytes = number.getBytes();
    Arrays.sort(bytes);
    return bytes;
}

如果排序不是您的意思,只需删除该行。

于 2012-11-03T00:38:27.403 回答
0

我不会使用第二个参数并执行以下操作:

public static byte[] convertNumToDigitArray(String number) {
    if (number != null && number.matches("\\d*") {
        byte[] result = new byte[number.length()];
        for (int i = 0; i < number.length(); i++) {
            result[i] = Byte.parseByte("" + number.charAt(i));
        }
        return result;
    } else {
        throw new IllegalArgumentException("Input must be numeric only");
    }
}
于 2012-11-02T23:44:26.907 回答