Java 创建字符串二进制终止符
我需要把终结者放在我的弦上。终止符可能是字节11(或0x0B),也可能是将来的任何其他终止符。向字符串中添加字节的最佳方法是什么 我想做一些类似的事情:Java 创建字符串二进制终止符,java,string,Java,String,我需要把终结者放在我的弦上。终止符可能是字节11(或0x0B),也可能是将来的任何其他终止符。向字符串中添加字节的最佳方法是什么 我想做一些类似的事情: String s = "122456"+char(11); 在Java中,应该为此使用一个常量。试一试 public final static char TERMINATOR = 0x0B; 然后,您可以在代码中这样使用它: "122456" + TERMINATOR 这使得代码可读,并且用不同的符号替换终止符(不是在您的情况下,而是一般
String s = "122456"+char(11);
在Java中,应该为此使用一个常量。试一试
public final static char TERMINATOR = 0x0B;
然后,您可以在代码中这样使用它:
"122456" + TERMINATOR
这使得代码可读,并且用不同的符号替换终止符(不是在您的情况下,而是一般情况下)或查找使用符号的所有位置也变得简单
如果需要终止符为变量,请使用字段和访问器方法:
private char terminator = 0x0b;
public void setTerminator( char terminator ) { this.terminator = terminator; }
public char getTerminator() { return terminator; }
这允许您更改终止符
我还建议为每个计划发送的消息创建一个Java类型。该类型应该知道如何创建字节数组,然后可以使用“IO服务”进行传输。因此,为消息的每个部分创建访问器方法,然后创建一个encode()
方法:
public byte[] encode() {
String message = data1 + terminator + data2 + terminator + ...
return message.getBytes("ISO-88591-1");
}
这样,您可以一步一步地构建消息,然后将其转换为字节流,在消息完成后发送。为什么需要在字符串中放置终止符?这感觉就像java中需要终止符一样
String
?我需要将此字符串发送到com端口。协议需要特定的终止符(和字段分隔符)。您能告诉我们您的代码吗?您尝试了什么?Java中的字符串在内部编码为UTF-16。UTF-16中没有单字节,所有字符都是2字节宽。如何在协议中对字符串进行编码?但我需要使用类似终止符的变量,然后将其作为类的属性(=字段),并添加一个getter+setter。您可以使用“122456”+(char)0x0b
或“122456\u000b”,但这将使以后很难用不同的字符替换它。@user1501700不,您不需要。您使用的是固定协议,并且该协议具有固定的终止符。否则它就不是协议。