到了这一点。 我不知道是什么导致我的函数错误,但是当我想将int数组转换为ASCII字符时,我遇到了一些错误,其中包含
java.lang.OutOfMemoryError:无法分配带有4194304个空闲字节和30MB的51529974字节分配
我认为我的功能不足以转换它。 这是我的功能:
public static String[] DectoASCII(int[] resultXORDec,int jumKat) {
int length = jumKat;
String ASCIIfromDec[] = new String[jumKat];
for(int i=0;i<jumKat;i++) {
StringBuilder builder = new StringBuilder(length);
for (int j = length - 1; j >= 0; i--) {
builder.append((char) ((resultXORDec[j] >> (8 * i)) & 0xFF));
}
ASCIIfromDec[i]=builder.toString();
Log.d("ascifrom",ASCIIfromDec[i]);
}
return ASCIIfromDec;
}
}
请高手,帮帮我。有没有其他方法将int(十进制)转换为ASCII代码? 感谢..
答案 0 :(得分:3)
好吧,我想j
索引在这个循环中不会改变:
for (int j = length - 1; j >= 0; i--) {
builder.append((char) ((resultXORDec[j] >> (8 * i)) & 0xFF));
}
因此你有一个无限循环,所以builder
变得越来越大。