我需要在java中的字符串中添加一些不可打印的字符,以便可以通过tcp管道发送。字符对我正在使用的协议有意义(分别记录分隔符和消息结束)
这样做的最佳方式是什么?
理想情况下,我想将它们称为常量,以便我可以使用字符串连接/ stringbuilder / string.format在必要时添加它们,而无需输入它们。
好奇的是,我需要的字符是ASCIIx1E(记录分隔符)和ACSIIx03(文本结束)。
答案 0 :(得分:8)
public final class ProtocolConstants {
public final char RECORD_SEPARATOR = 0x1e;
public final char END_OF_TEXT = 0x03;
private ProtocolConstants() {}
}
类似的东西?
答案 1 :(得分:3)
如果您愿意,可以将它们写成Unicode文字(在字符或字符串中):
final String endOfText = "\u0003";
我假设您不希望ASCII用于基于字节的协议(字符仍然是16位)。
答案 2 :(得分:1)
您可以将任何字符添加到Java String
。但是,如果您只想传输二进制数据,String
可能不是您想要的。考虑使用byte[]
或其他一些面向字节的接口。