我正在为我正在制作的洪流下载系统实施一个编码系统。
对字符串进行编码非常简单,您可以获取一个字符串,例如“hello”,然后通过编写字符串长度 + 一个 ':' 字符来对其进行编码,然后是字符串本身。编码后的“hello”将是“5:hello”
目前我有这个代码。
public BencodeString(String string) {
this.string = string;
}
public static BencodeString parseBencodeString(String string) {
byte[] bytes = string.getBytes();
int position = 0;
int size = 0;
StringBuilder sb = new StringBuilder();
while (bytes[position] >= '0' && bytes[position] <= '9') {
sb.append((char) bytes[position]);
position++;
}
if (bytes[position] != ':')
return null;
size = Integer.parseInt(sb.toString());
System.out.println(size);
if (size <= 0)
return null;
return new BencodeString(string.substring(position + 1, size + position
+ 1));
}
它有效,但我觉得它可以做得更好。做这个的最好方式是什么?
注意:字符串可以是任意大小(因此字符串前多于一位)
已经解决了,感谢所有在这里回复的人:)