如何将Java字符串转换为字节数组?

11 浏览
0 Comments

如何将Java字符串转换为字节数组?

我是Java的新手,我相信这很简单。我一直在尝试将一个字符串转换为byte[],但似乎做不到。我是用它来打印机的。上面的代码可以正常工作,但我需要能够从一个字符串中取出0x1b0x2d0x00的值并插入进去,像这样:

String hexcode = "0x1b, 0x2d, 0x00";
commands.add(new byte[] { hexcode });

我尝试了很多方法,但似乎无法实现。

0
0 Comments

问题的原因是需要将Java字符串转换为字节数组,但是在尝试转换时出现了类型不兼容的错误。解决方法是使用简单的方法,首先将字符串进行分割,然后循环遍历生成每个元素的字节,并将其添加到ArrayList中。但是由于ArrayList实际上是一个二维集合,所以需要获取每个字节数组的第一个元素作为字节。最后,使用正确的字符集将字节转换为所需的形式。

以下是解决问题的代码:

import java.util.ArrayList;
public class HelloWorld {
    public static void main(String[] args) {
        String hexcode = "0x1b, 0x2d, 0x00";
        String[] stringArray = hexcode.split(",");
        ArrayList byteArray = new ArrayList();
        for (int x = 0; x < stringArray.length; x++) {
            byteArray.add(stringArray[x].getBytes());
        }
        System.out.println(byteArray);
    }
}

以上代码将字符串进行分割,并将每个元素的字节添加到ArrayList中。最后,打印出ArrayList中的字节数组。

希望以上解决方法对您有帮助!

0
0 Comments

问题的原因是需要将Java字符串转换为字节数组。解决方法是使用字符串的getBytes方法,并提供指定的字符集。

下面是解决方法的具体代码:

String str = "\u001b\u002d\u0000";
byte[] bytes = str.getBytes(StandardCharsets.ISO_8859_1);

这段代码将产生一个等同于`new byte[] {0x1b, 0x2d, 0x00}`的字节数组。

上述代码中的解释如下:

- Java字符串是一系列字符的序列。

- `\uxxxx`是在Java代码中表示Unicode字面值的方式。

- `getBytes(Charset)`方法使用提供的字符集进行字符到字节的编码。

- Unicode字符`\u0000`到`\u00ff`在ISO_8859_1(或Latin-1)字符集中直接映射到`0x00`到`0xff`。

如果你遇到了问题,请确保使用字符串字面值。如果你不是在问关于作为字符串字面值提供的输入字符串的问题,那么你的问题就不应该用字符串字面值作为示例。这会给人带来误导。

这种方式打印出的文本是`\u001b\u002d\u0000`。

如果你想从其他地方(例如某种特定的字符串格式)填充字节数组,那么请在问题中明确说明。同时,请确保字符串格式的规范是明确的。

0