Java 字节数组到字节的字符串

Java 字节数组到字节的字符串,java,Java,我有: String key=“0x64,0xC,-90,0x77,0x2B,-113,0xD,0x69,-111,0x76,0x11,0x35,-68,-110,-106,-81” 它已经是保存在共享首选项中的十六进制字节数组。我只需要在下面写上 字节[]输入_key=新字节[]{key} 请注意,这里有负数。将实际解析留给您去发现,这是我在评论中描述的: String[] sNums = key.split(","); // Mind that the elements will still

我有:

String key=“0x64,0xC,-90,0x77,0x2B,-113,0xD,0x69,-111,0x76,0x11,0x35,-68,-110,-106,-81”

它已经是保存在共享首选项中的十六进制字节数组。我只需要在下面写上

字节[]输入_key=新字节[]{key}


请注意,这里有负数。

将实际解析留给您去发现,这是我在评论中描述的:

String[] sNums = key.split(","); // Mind that the elements will still contain whitespace!

byte[] bNums = new byte[sNums.length];
for( int i = 0; i < bNums.length; i++ )
{
    if( sNums[i].trim().startsWith("0x") )
    {
       bNums[i] = [insert hex parsing here]
    }
    else
    {
       bNums[i] = [insert decimal parsing here]
    }
}
String[]sNums=key.split(“,”)//请注意,元素仍将包含空格!
字节[]bNums=新字节[sNums.length];
对于(int i=0;i
效率不高,也不优雅,但如果解析正确,可能会起作用

扰流板:Boris实际上已经破坏了十六进制解析(将鼠标指向黄色区域vv)

整型.valueOf(s,16).byteValue()


从这里开始,您当然可以理解十进制解析。

您需要编写一个类似的“迷你解析器”来完成这项工作。祝你好运但说真的,你有什么实际问题吗?@boristesspider
Integer.valueOf(s,16)
可能重复。我怀疑这是否有效。看看输入:基数10和十六进制是混合的。我要做的是:1。按“,”将字符串拆分为字符串[]。2.声明大小相同的字节[]。3.迭代字符串[],对于索引为i的每个元素n:确定它是十六进制还是Base10,并相应地对其进行分析,将结果写入索引i处的字节[]。@Boristespider,这是一种很难理解的代码形式。助手写道它有问题。对不起,你能详细说明一下吗?正如下面提到的,它不能处理负字节。我不能建议编辑(限制为10位)。能否将regexp更改为“,\\s”并添加十六进制部分?
sNums[i]=sNums[i]。子字符串(2);bNums[i]=Integer.valueOf(sNums[i],16).byteValue()bNums[i]=(字节)Integer.parseInt(sNums[i])