Java 将长字符串拆分为字节数组
这是游戏中的关卡系统。 该级别由两个字节数组组成: 字节[]分片和字节[]数据 tiles保存tile的id,data保存数据 我创建了一个函数,用它们生成一个字符串。它的格式类似于tileId:tileData、tileId:tileData、tileId:tileData等 您可以在此处看到完整级别的示例: 脚本如下所示: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
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是一个单字节,但每个磁贴的数据都是一个单字节,这令人惊讶。我尝试了几种不同的方法,但没有一种有效。-你能发布一些你所做的尝试吗?没问题,一定要标记绿色复选框,如果它对你有用的话,选择这个作为正确答案。