我正在通过相机读取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
。