Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将长字符串拆分为字节数组_Java_Arrays_String_Integer - Fatal编程技术网

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

Java 将长字符串拆分为字节数组,java,arrays,string,integer,Java,Arrays,String,Integer,这是游戏中的关卡系统。 该级别由两个字节数组组成: 字节[]分片和字节[]数据 tiles保存tile的id,data保存数据 我创建了一个函数,用它们生成一个字符串。它的格式类似于tileId:tileData、tileId:tileData、tileId:tileData等 您可以在此处看到完整级别的示例: 脚本如下所示: public String toString() { String s = ""; StringBuilder sb = new StringBuilde

这是游戏中的关卡系统。 该级别由两个字节数组组成: 字节[]分片和字节[]数据 tiles保存tile的id,data保存数据

我创建了一个函数,用它们生成一个字符串。它的格式类似于tileId:tileData、tileId:tileData、tileId:tileData等 您可以在此处看到完整级别的示例:

脚本如下所示:

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;
}
现在我需要一种方法将其转换回双字节数组。
我尝试了几种不同的方法,但没有一种有效。

假设变量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++;
}

按照您描述该程序的方式,听起来每个数据值都是一个字节。准确吗?我可以想象磁贴ID是一个单字节,但每个磁贴的数据都是一个单字节,这令人惊讶。我尝试了几种不同的方法,但没有一种有效。-你能发布一些你所做的尝试吗?没问题,一定要标记绿色复选框,如果它对你有用的话,选择这个作为正确答案。