(JAVA)将十进制转换为二进制编码的十进制?

(JAVA)将十进制转换为二进制编码的十进制?,java,binary,decimal,bcd,Java,Binary,Decimal,Bcd,例如,我想将int值12转换为BCD:0012(0x000x12)的字符串输出。 如果我的int值为256,它将是02 56(即0x02 0x56), 或者如果我有一个int值999,它将是0999(0x09 0x99), 9999将是9999(0x99 0x99) 现在,我唯一的解决方案是创建一个大小为4的字符串数组,并通过将int值转换为String来计算有多少个字符。如果有2个字符,我将在添加2个字符之前先将2 x 0添加到数组中,然后将它们重新添加到单个字符串变量中 基本上 int va

例如,我想将int值
12
转换为BCD:
0012
(0x000x12)的字符串输出。 如果我的int值为
256
,它将是
02 56
(即0x02 0x56), 或者如果我有一个int值
999
,它将是
0999
(0x09 0x99),
9999
将是
9999
(0x99 0x99)

现在,我唯一的解决方案是创建一个大小为4的字符串数组,并通过将int值转换为String来计算有多少个字符。如果有2个字符,我将在添加2个字符之前先将2 x 0添加到数组中,然后将它们重新添加到单个字符串变量中

基本上

int value = 12;
String output = Integer.toString(value); 
// then count the number of characters in the String.
// 4 minus (whatever number of characters in the String, add zeros
// add the characters:
stringArray[0] = "0";
stringArray[1] = "0";
stringArray[2] = "1";
stringArray[3] = "2";
// then, concatenate them back

如果有3个字符,我将在添加3个字符之前先向数组中添加一个
0
。我想知道还有别的办法吗?

这就是你想要的吗

public static String formatTheString(String string, int length) {
    return String.format("%"+length+"s", string).replace(' ', '0');
}
然后像这样传递值

formatTheString(Integer.toString(256),4);

您可以使用
String.format
追加前导
0
,并使用子字符串将其拆分为两部分

int值=12;
字符串输出=String.format(“%04d”,值);
System.out.println(output.substring(0,2)+“”+output.substring(2,4));
String.format(“%04d”,value)
如果长度小于4,将在前面追加
0
s

如果不想使用子字符串,可以使用String.split和String.join,如下所示

System.out.println(
String.join(
" ",
Arrays.asList(

output.split((?我认为你的要求不正确。 请参阅BCD

下面的代码足以满足您的需要

System.out.printf(“%04d”,n)


在上面的代码中,n是您的数字。

只是为了澄清,您希望创建一个字符串数组,每个字符串包含一个字符串?@Martin Hmm,我有一个int值,我想将它们转换为二进制编码的十进制(?),就像int值48将变成字符串值“00 48”(0x00 0x48),int值128将变成字符串值“01 28”(0x01 0x28)…这是二进制到BCD的转换。没有任何十进制输入。非常感谢!!这不会产生BCD。