我需要执行此操作,需要将一个字节(例如 0x10)附加到 Java 中的某个字符串。我想知道我该怎么做?
例如:
String someString = "HELLO WORLD";
byte someByte = 0x10;
在此示例中,我将如何将 someByte 附加到 someString?
我问这个问题的原因是因为我正在开发的应用程序应该向某个服务器发送命令。服务器能够接受命令(base64 编码)、解码命令并解析出这些字节,这些字节不一定与执行某些特殊功能的任何 ASCII 编码标准兼容。
如果要将
byte
的实际值连接到 String
,请使用 Byte
包装器及其 toString()
方法,如下所示:
String someString = "STRING";
byte someByte = 0x10;
someString += Byte.toString(someByte);
如果您想将字节的字符串表示形式作为 ascii 字符,请尝试以下操作:
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
如果您只想扩展字符串文字,请使用这个:
System.out.println("Hello World\u0010");
否则:
String s1 = "Hello World";
String s2 = s1 + '\u0010';
不 - 字符不是字节,反之亦然。但这里的近似值足够接近:-)
我已将@Fritz提供的答案代码重组为Java方法,您可以轻松地将其合并到您的开发中:
public class Post15977262 {
public static String appendByteToString(String originalString, byte byteToAppend) {
originalString += Byte.toString(byteToAppend);
return originalString;
}
}