2

inttime[]是一个已经包含个位数整数值的数组。第一个for循环试图将每个整数转换为二进制字符串并将其存储到字符串数组bintime[]中。这部分工作正常,但是当我尝试运行下一个 for 循环时,出现非法格式转换错误。

for(int j = 0; j < inttime.length; j++){
bintime[j] = Integer.toBinaryString(inttime[j]);
}

for(int a = 0; a < bintime.length; a++){
System.out.println(String.format("%04d",bintime[a]));
}

bintime[]如果是String数组,为什么会发生这种情况?

4

1 回答 1

6

如果bintime数组成立Strings- 正如你所说并且你正在分配给数组Integer.toBinaryString- 你会看到format尝试打印Stringas的异常int%d格式需要一个int,而不是 a String

如果您尝试填充以String2 为基数的表示形式,请使用以下内容:

System.out.println(
  String.format("%4s", Integer.toBinaryString(inttime[idx])).replace(' ', '0'));

4格式字符串中的 表示 的最小宽度String较短的字符串将用空格填充。

于 2012-08-31T22:53:42.397 回答