Java 将字符串转换为字节,然后插入字节数组

Java 将字符串转换为字节,然后插入字节数组,java,string,casting,bytearray,byte,Java,String,Casting,Bytearray,Byte,我有一个十六进制字符串,st=“9e”。我需要将其转换为字节并将其插入字节数组。但我不能从字符串转换到字节。我使用了一些技巧,比如 1) 字节.valueOf(str); 2) 新字节(str); 3) 尝试将“0X”附加到str,然后转换为字节。 这些都是错误的 你能告诉我如何从字符串转换到字节吗 类似于 String x = "2A"; int intValue = Integer.parseInt(x, 16); byte b = (byte) i

我有一个十六进制字符串,st=“9e”。我需要将其转换为字节并将其插入字节数组。但我不能从字符串转换到字节。我使用了一些技巧,比如 1) 字节.valueOf(str); 2) 新字节(str); 3) 尝试将“0X”附加到str,然后转换为字节。 这些都是错误的

你能告诉我如何从字符串转换到字节吗

类似于

            String x = "2A"; 
    int intValue = Integer.parseInt(x, 16);
    byte b = (byte) intValue;
9e对于字节来说太大,因为一个字节可以容纳的值大于128


一个无符号字节可以容纳0-255,但java只有一个有符号字节可以容纳-128到127,因此您必须自己适当地映射范围)

您尝试过下面的代码吗

String st = "9e";
byte [] value = st.getBytes();

你试过使用吗?它接收字符串并将其作为
字节[]
输出。希望这能有所帮助。

您可能正在寻找以下内容:

import java.util.*;
import java.lang.*;

class Main
{
        public static void main (String[] args)
        {
                String hex = "9e";
                int i = Integer.parseInt(hex, 16);
                System.out.println(Arrays.toString(intToBytes(i)));
        }

        private static byte[] intToBytes(int n) 
        {
                byte[] bytes = new byte[4];
                for(int i = 0; i < 4; i++)
                {
                        bytes[i] = (byte) (n | 0);
                        n >>= 8;
                }
                return bytes;
        }
}
import java.util.*;
导入java.lang.*;
班长
{
公共静态void main(字符串[]args)
{
字符串hex=“9e”;
int i=整数.parseInt(十六进制,16);
System.out.println(Arrays.toString(intToBytes(i));
}
专用静态字节[]整数字节(整数n)
{
字节[]字节=新字节[4];
对于(int i=0;i<4;i++)
{
字节[i]=(字节)(n | 0);
n>>=8;
}
返回字节;
}
}

由于字节是有符号的整数类型,您需要将它们转换为无符号值。

可能重复下行表决,因为一个简单的谷歌搜索会得到正确的答案。您仍然感到困惑的所有人都给了您直截了当的ans。我不认为OP是在寻找字节数组。她在寻找一个简单的旁白:有多少人不理解你的问题,也许你应该考虑清楚一点。停止投票。人们完全按照你的要求回答,你没有正确表达自己不是他们的错从
int
byte
的转换可能会截断一个大得多的值,而这个值不适合单个字节。包括一个先测试整数值的断言,并使用掩码只捕获最低顺序的字节,这将是一个更明智的选择。。但答案是-98。我需要在数组中精确地放入9e,这正是我说转换为无符号字节的原因。