Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么可以';t我使用String.format()来格式化来自Integer.toBinaryString()的字符串吗?_Java_String_String Formatting - Fatal编程技术网

Java 为什么可以';t我使用String.format()来格式化来自Integer.toBinaryString()的字符串吗?

Java 为什么可以';t我使用String.format()来格式化来自Integer.toBinaryString()的字符串吗?,java,string,string-formatting,Java,String,String Formatting,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+

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]));
}
for(int j=0;j

如果
bintime[]
是一个
字符串
数组?

如果
bintime
数组包含
字符串
-如您所述,并从
整数分配给数组。toBinaryString
-您将看到
格式
尝试将
字符串
打印为
int
%d
格式预期的异常一个
int
,而不是
字符串

如果您试图填充以2为基数的数字的
字符串
表示,请使用以下方法:

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

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

%04d
需要一个整数(因此
d
)。使用
%04s
。您的问题回答了您的问题--为什么不能将字符串格式化为数字?因为它们是字符串。你可以使用System.out.format作为快捷方式。推断没有意义,他在文章的末尾说:-我正试图在每个二进制中添加前导零number@user1604288请参见编辑:您需要使用
String
操作来填充二进制字符串