【问题标题】:Can't Convert an Int Array to ASCII无法将 Int 数组转换为 ASCII
【发布时间】:2016-01-06 18:36:27
【问题描述】:

说到点子上了。 我不知道是什么让我的函数出错,但是当我想将一个 int 数组转换为 ASCII 字符时,我遇到了一些错误,上面写着

java.lang.OutOfMemoryError: 无法分配 51529974 字节分配,其中 4194304 空闲字节和 30MB

我认为我的功能不足以转换它。 这是我的功能:

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 码? 谢谢..

【问题讨论】:

    标签: java arrays ascii


    【解决方案1】:

    好吧,我猜j 索引在这个循环中不会改变:

    for (int j = length - 1; j >= 0; i--) {
    builder.append((char) ((resultXORDec[j] >> (8 * i)) & 0xFF));
    }
    

    因此你有一个无限循环,所以builder 变得越来越大。

    【讨论】:

    • 是的,我认为这是问题所在,也许 i-- 本来就是 ​​j--
    • 好的,谢谢先生,它现在可以正常运行了。但我对结果有错误。字符串生成器的结果只是显示 ????当我登录到它时。有什么方法可以将 stringbuilder 转换为普通的 String?
    • 您只需使用toString 方法即可。另一个问题是你在resultXORDec 中实际输入的内容。
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多