将长字符串拆分为字节数组

时间:2012-02-22 17:29:00

标签: java arrays string integer

这适用于游戏中的关卡系统。 该级别由两个字节数组组成:
byte[] tilesbyte[] data
tiles保存切片的ID,data保存数据。

我创建了一个函数来从中创建一个字符串。它的格式类似于tileId:tileData,tileId:tileData,tileId:tileData,etc
您可以在此处查看完整级别的示例:http://pastebin.com/X2LG7e80

脚本如下所示:

public String toString() {
    String s = "";
    StringBuilder sb = new StringBuilder();
    for (int t = 0; t < tiles.length; t++) {
        sb.append(tiles[t]).append(":").append(data[t]).append(t == tiles.length - 1 ? ";" : ",");
    }
    s = sb.toString();
    return s;
}

现在我需要一种方法将它变回两个字节的阵列 我尝试了几个不同的东西,但没有一个有效。

1 个答案:

答案 0 :(得分:0)

假设变量stringRep包含字符串表示:

String stringRep = "tileId:tileData,tileId:tileData,tileId:tileData";


String[] pairs = stringRep.split(",");
byte[] tiles = new byte[pairs.length];
byte[] data = new byte[pairs.length];

int i = 0;
for(String pair : pairs){
    String[] pairParts = pair.split(":");
    titles[i] = Byte.parseByte(pairParts[0]);
    data[i] = Byte.parseByte(pairParts[1]);
    i++;
}