【发布时间】:2011-12-17 00:41:39
【问题描述】:
所以我正在为在线游戏制作自己的网络协议,为了节省空间,每条消息(通过 TCP 发送)都有一个很短的 ID,2 个字节,所有从服务器发送到客户端的消息,反之亦然反之亦然是字符串,如何在 java 中仅用 2 个字节(字符)将 short 转换为字符串?
更新:我可能不清楚我想要什么... 我希望能够将一个 short int 转换为 2 个字符,这样我就可以通过网络以 2 个字节的字符串格式发送 short 并将其解码回另一端的 short(在 actionscript 3 中)。
一个字符可以容纳 256 个可能的值,对吧?所以 256*256=65,536 是 unsigned short int 的大小!
这是我目前得到的:
public static String toCode(int c){
if(c <= 255 ){
return Character.toString((char)c);
}else{
return null;
}
}
public static int fromCode(String c){
return ((int)c.charAt(0));//Return the character code of the send string, 1 char only
}
这可以将一个 int 变成一个可以通过网络发送的单个字符,现在我只需要让它使用 2 个字符,它最多可以做一个短。
【问题讨论】:
-
你不能——这就是为什么首先有
short... -
如果您想节省空间,我认为您不应该使用字符串 :)
-
Java
char是 16 位,而不是 8... -
看看这个问题stackoverflow.com/questions/231051/…。 Java 中的字符串只有 2 个字节是不可能的。
标签: java string actionscript-3 byte short