我正在通过相机读取QR并返回QR返回的字符串。
我正在解析该字符串以解码该值。请查看代码并输入和输出数据示例。

码:

public void decodeQRString()
{
    String alphaNumeric = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    String str = "0F123456789ABCDEF1OABERCROMBIE SUBWAY SHOP241234";
    int n = str.length(), i = 0;

    while(i < n)
    {
        StringBuilder tmp = new StringBuilder();

        int len = alphaNumeric.indexOf(str.charAt(i+1)) + 1;

        int l = len + 1;
        for(int j = 2; j <= l; j++)
        {
            tmp.append(str.charAt(i+j));
        }
        System.out.println(str.charAt(i) + ":" + str.charAt(i+1) + ":" + tmp.toString());
        i = (i+2) + len;
    }
}


要求的输出:

0:F:123456789ABCDEF

1:O:ABERCROMBIE SUBWAY SHOP

2:4:1234


我的输出:

0:F:123456789ABCDEF

1:O:ABERCROMBIE SUBWAY SHOP2

4:1:2


请帮我解决这个问题。

最佳答案

在我看来,您的程序正常,并且字符串的编码不正确。代替

"0F123456789ABCDEF1OABERCROMBIE SUBWAY SHOP241234"


它应该是

"0F123456789ABCDEF1NABERCROMBIE SUBWAY SHOP241234"


因为ABERCROMBIE SUBWAY SHOP的长度对应于N而不是O

07-27 13:50