在Java中将不可打印的字符添加到字符串中?

时间:2009-07-22 11:43:14

标签: java string ascii

我需要在java中的字符串中添加一些不可打印的字符,以便可以通过tcp管道发送。字符对我正在使用的协议有意义(分别记录分隔符和消息结束)

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

理想情况下,我想将它们称为常量,以便我可以使用字符串连接/ stringbuilder / string.format在必要时添加它们,而无需输入它们。

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

3 个答案:

答案 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[]或其他一些面向字节的接口。