簡體   English   中英

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

[英]Adding non printable chars to a string in Java?

我需要在 java 中的字符串中添加一些不可打印的字符,以便它可以通過 tcp 管道發送。 字符對我使用的協議有什么意義(分別是記錄分隔符和消息結尾)

這樣做的最佳方法是什么?

理想情況下,我喜歡將它們稱為常量,以便我可以使用字符串連接/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可能不是您想要的。 考慮使用byte[]或其他一些面向字節的接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM