1

I'm creating a method specific method for a java project i'm working on. The UML given specifies the return type to be of static byte[] that accepts the arguments (String, byte)

So far, looks like this:

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

}

This method is supposed to convert a number (as a String) to an array of bytes. The ordering must go from most to least significant digits. For example, if the number String is “732” then index 0 of the array should contain 7.
The last argument (numDigits) should match the length of the string passed in.

How do I do this?

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

2 番目のパラメーターは使用せず、次のようにします。

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 に答える