想知道我这段代码运行的结果?为什么System.out();和Log.i()都不行呢?

// 数据处理
public static String Change1(String str, int len)
{
String str1="p1r!p1r003B1s!p2r!p2r00003!p1r!p1r003B1s!p2r!p2r00003!" +
"p1r!p1r003B1s!p2r!p2r00003!p1r!p1r003B1s!p2r!p2r00003!p1r!p1r001E1v!p1r!p1r001E1v!";

    String hexString = str1.replace(" ", "");
    String ret = "";
    char[] hexChars = hexString.toCharArray();
    for (int i = 0; i < hexChars.length;) 
    {

            if ((hexChars[i] == 'p') && (hexChars[i + 1] == '1')
                    && (hexChars[i + 2] == 'r') && (hexChars[i + 3] == '!')) 
            {
                String p = Integer
                        .toString((CharToHex(hexChars[i + 7]) << 12)
                                | (CharToHex(hexChars[i + 8]) << 8)
                                | (CharToHex(hexChars[i + 9]) << 4)
                                | CharToHex(hexChars[i + 10]));
                i=i+14;

                Log.i("DIAN WEI", "p");

                return p;

            } else 
            {   
                i=1+1;
            }
        }
    return null;

}

public static int CharToHex(char Char) {

    if (Char >= '0' && Char <= '9')
        return Char - '0';
    else if (Char >= 'A' && Char <= 'F')
        return Char - 'A' + 10;
    else if (Char >= 'a' && Char <= 'f')
        return Char - 'a' + 10;
    else
        return 0;
}

你的逻辑我就不看了,说说我看到的错误吧。
就是你for循环中esle里面对i的赋值,i=1+1;
当i=1+1不满足你if中的条件时,就永远是2;
那么程序就会因为死循环造成栈溢出。

如果有帮助,希望采纳

http://zhidao.baidu.com/link?url=Nf6aqL1s9sOb2Mt343E15dqfgld1VOmzVw56GK9c0xL0ktQkNk6F1hcRxkKaSpyEGxbzmcWRO7nodhWAUCUHXzAZrCFb_kzmeV3TH8nSZXa