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