【发布时间】:2019-09-07 18:27:50
【问题描述】:
我必须将一些包含本地化值的字符串保存到字节数组中。
然后我必须从字节数组中重构字符串
我将字符串编码为字节数组,如下所示:
byte addr = 0x08;
for (String s : values) {
char[] dataBytes = s.toCharArray();
int length = s.length();
for (int i = 0; i < 4; i++) {
byte[] buffer = new byte[4];
for (int j = 0; j < 4; j++) {
if(i * 4 + j < length ) {
buffer[j] = (byte) Character.codePointAt(dataBytes, i * 4 + j);
} else {
buffer[j] = (byte) 0;
}
}
nfcHandler.write(buffer, addr);
addr++;
TimeUnit.MILLISECONDS.sleep(10);
}
}
如何重构字符串?我试过了
new String(bytes, StandardCharsets.UTF_8);
和
bytes.toString();
但两者都不起作用。
知道如何完成这个吗?
请帮忙..!!!
【问题讨论】:
-
你自己编码字节有什么原因吗?你不能使用 s.getBytes(Charset charset 进行编码吗?使用 s.getBytes(Charset charset) 和之后的 new String(byte[] bytes, Charset charset) 应该给出相同的字符串。
-
说实话,现在是货物崇拜。我还在学习安卓编程。我会尝试这种方法:)