gpt4 book ai didi

java - 字符串的一部分未插入

转载 作者:行者123 更新时间:2023-12-01 09:35:28 26 4
gpt4 key购买 nike

我有一个Button,它获取ComboBox的值并将其插入到一个字符串中以通过我的串行端口发送。由于某种原因,该值未插入到字符串中,但字符串的其余部分已正确构建。谁能告诉我为什么?

当我System.out.println(something);时,它正确打印ComboBox“3”中选择的值

这是我的按钮JavaFX.ActionEvent

@FXML
public void setPresetButton(ActionEvent event) {
byte _preset = (Byte) setPresetComboBox.getValue();
try {
something = presetNo[_preset - 1];

byte[] command = { (byte) setPresetX,setPresetS,something,0x20};
TwoWaySerialComm.SerialWriter sw = new TwoWaySerialComm.SerialWriter(
twoWaySerCom.serialPort.getOutputStream());

sw.out.write(command);
System.out.println(something);
} catch (IOException e) {
e.printStackTrace();
}
}


byte presetNo[] = { 0X01, 0X02, 0X03, 0X04, 0X05 };
byte something;
Byte[] preset = { 1, 2, 3, 4, 5 };
byte setPresetX = 0x78;
byte setPresetS = 0x73;

最佳答案

您似乎将文本编码为 ASCII,并且还需要数字字符,即 '1''2'、...、 '5'(编码 0x310x320x330x340x35) 而不是标题开始、文本开始、文本结束、传输结束和查询的控制代码(参见 Control Codes )。

如果您确实需要 ASCII 编码,可以使用 String 进行编码:

String s = "xs" + something + ' ';
Charset charset = StandardCharsets.US_ASCII;
byte[] command = s.getBytes(charset);

或者,您也可以通过将 '0' 添加到 byte 值来获得正确的编码:

byte[] command = { (byte) setPresetX, setPresetS, (byte)(something + '0'), 0x20};

关于java - 字符串的一部分未插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38993351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com