6

我需要在 java 中的字符串中添加一些不可打印的字符,以便它可以通过 tcp 管道发送。这些字符对我正在使用的协议意味着某些东西(分别是记录分隔符和消息结尾)

这样做的最佳方法是什么?

理想情况下,我想将它们称为常量,这样我就可以使用 string concatonation/stringbuilder/string.format 在需要的地方添加它们,而无需输入它们。

出于好奇,我需要的字符是 ASCIIx1E(记录分隔符)和 ACSIIx03(文本结尾)。

4

3 回答 3

8
public final class ProtocolConstants {
    public final char RECORD_SEPARATOR = 0x1e;
    public final char END_OF_TEXT = 0x03;

    private ProtocolConstants() {}
}

类似的东西?

于 2009-07-22T11:47:01.453 回答
6

如果您愿意,可以将这些写为 Unicode 文字(以字符或字符串形式):

final String endOfText = "\u0003";

我假设您实际上并不希望ASCII用于基于字节的协议(字符仍然是 16 位)。

于 2009-07-22T12:15:48.330 回答
1

您可以将任何字符添加到 Java String。但是String如果您只想传输二进制数据,a 可能不是您想要的。考虑使用一个byte[]或其他一些面向字节的接口。

于 2009-07-22T18:41:12.783 回答