运行代码后出现此异常,我不知道是什么问题!
程序最初创建 int 数组,然后创建与 int 相同长度的字符串数组,然后取 v 中的每个索引并将其转换为二进制,如果数字小于 4,则添加零,然后在操作字符串数组后将其存储在字符串索引中将其传递给称为 toBinaryInteger 的方法,该方法返回 int 数组 toBinaryInteger 方法创建一个长度为 st.length*4 的数组,该数组应该为 32,然后从 st 获取每个输入,并获取它的每个数字并将其存储在 p 数组中,然后程序打印结果,但此时出现异常。我希望我能很好地解释这个程序。任何想法请帮助。
嗨,每个人的问题都解决 了,问题是我打印了错误的数组 insted 结果我为好的调试器打印了 st 特殊的 tankx
public static void main(String [] arg)
{
int [] v={0,11,12,13,14,15,7,8};
String [] st=new String [v.length];
String x="";
for(int i=0;i<st.length;i++)
{
x=Integer.toBinaryString(v[i]);
while (x.length()<4) // add zeroed to left if needed to fit in 4 bits
x="0"+x;
st[i]=x;
}
int [] result=toBinaryInteger(st);
int count=0;
for(int k=0;k<result.length;k++)
{
System.out.print(st[k]);
if(count==4){
System.out.print(" ");
count=0;
}
}
}
public static int [] toBinaryInteger(String [] s)
{
int [] p=new int [s.length*4];
for(int i=0;i<s.length;i++)
{
for(int j=0; j<s[i].length();j++){
p[i*4+j]=Integer.parseInt(s[i].substring(j,j+1));//create array of 32 lenght
}
}
return p;
}