【问题标题】:How to append a byte to a string in Java?如何将一个字节附加到Java中的字符串?
【发布时间】:2013-04-05 07:43:27
【问题描述】:

我有这个操作需要执行,我需要将一个字节(例如 0x10)附加到 Java 中的某个字符串。我想知道如何才能做到这一点?

例如:

String someString = "HELLO WORLD";
byte someByte = 0x10;

在此示例中,我将如何将 someByte 附加到 someString?

我问这个问题的原因是因为我正在开发的应用程序应该向某个服务器发送命令。服务器能够接受命令(base64 编码),对命令进行解码,并解析出这些不一定与任何类型的 ASCII 编码标准兼容的字节,以执行某些特殊功能。

【问题讨论】:

  • 一个字节不是一个字符。您希望字符串以什么开头和结尾,并给出什么“字节”输入?
  • 0x10 不是任何 ASCII 兼容编码中的可显示字符。为什么要在字符串中使用 Data Link Escape?
  • 我们知道变量,我们很难理解所需的输出。你想得到什么? "HELLO WORLD 0x10"?
  • 听起来他想将字节变量的名称附加到字符串中,在本例中为“someByte”;)

标签: java string hex byte


【解决方案1】:

如果要将byte 的实际值连接到String,请使用Byte 包装器及其toString() 方法,如下所示:

String someString = "STRING";
byte someByte = 0x10;
someString += Byte.toString(someByte);

【讨论】:

    【解决方案2】:

    如果你想将字节的字符串表示为 ascii char,那么试试这个:

    public static void main(String[] args) {
        String a = "bla";
    
        byte x = 0x21; // Ascii code for '!'
    
        a += (char)x;
    
        System.out.println(a); // Will print out 'bla!'
    }
    

    如果您想将字节值转换为字符串形式的十六进制表示,请查看Integer.toHexString

    【讨论】:

      【解决方案3】:

      如果你只是想扩展一个字符串文字,那么使用这个:

      System.out.println("Hello World\u0010");
      

      否则:

      String s1 = "Hello World";
      String s2 = s1 + '\u0010';
      

      并且没有 - 字符不是字节,反之亦然。但是这里的近似值已经足够接近了:-)

      【讨论】:

        猜你喜欢
        • 2013-09-28
        • 1970-01-01
        • 2011-05-25
        • 2015-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多