在Java中,如何将数字(作为字符串)转换为字节数组?
我正在为一个java项目创建一个特定于方法的方法。 给定的UML指定返回类型为在Java中,如何将数字(作为字符串)转换为字节数组?,java,arrays,string,bytearray,converter,Java,Arrays,String,Bytearray,Converter,我正在为一个java项目创建一个特定于方法的方法。 给定的UML指定返回类型为静态字节[],它接受参数(字符串,字节) 到目前为止,看起来是这样的: public static byte[] convertNumToDigitArray(String number, byte numDigits) { } public static byte[] convertNumToDigitArray(String number) { if (number != null &&
静态字节[]
,它接受参数(字符串,字节)
到目前为止,看起来是这样的:
public static byte[] convertNumToDigitArray(String number, byte numDigits) {
}
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");
}
}
此方法应将数字(作为字符串)转换为字节数组。排序必须从最高有效位到最低有效位。例如,如果
数字字符串为“732”,则数组的索引0应包含7。最后一个参数(numDigits)应与 字符串传入
如何执行此操作?可以使用
charAt()
检索字符串中的每个字符。可以通过减法将字符转换为其数字值,例如:
char c = number.charAt(0);
byte b = c - '0';
我不会使用第二个参数并执行以下操作:
public static byte[] convertNumToDigitArray(String number, byte numDigits) {
}
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");
}
}
公共静态字节[]convertNumToDigitArray(字符串编号){
如果(number!=null&&number.matches(\\d*)){
字节[]结果=新字节[number.length()];
对于(int i=0;i
我不明白为什么我们需要这么复杂的代码
仅仅使用JDK附带的方法有什么错
public static byte[] convertNumToDigitArray(String number, byte numDigits) {
byte[] bytes = number.getBytes();
Arrays.sort(bytes);
return bytes;
}
如果排序不是你的意思,只需删除那一行。如果可以从
number
的值推断出numDigits
的值,为什么两者都是必需的?是的,这当然是一个很好的技巧;太多人试图使用Integer.parseInt
(或类似的东西)来实现这一点。是否将使用getBytes()方法在升序索引中存储“number”的每个数字?