2016-03-08 96 views
0

我用阿卡开发一个服务器应用程序,我想知道是否有一个“干净”的方式去得到一个ByteString的子 - 喜欢的东西以字节字符串的子串在阿卡/斯卡拉

bytestr.getSubstringAtFor(int start, int len): ByteString 

或类似的。现在,我将ByteString转换为列表,创建另一个List[Byte],使用for循环将其循环并将相关字节复制到我的新列表中,然后将该字节列表转换回ByteString

有没有一种“干净”的方式来获取ByteString的子字符串?

+0

我可能已经有所降低我的代码 - 我现在使用'bytestr.drop(start).copyToArray(byteArray,0,len)',然后将字节数组转换为ByteString。 – Becca

回答

4

您应该可以使用slice来获取一个连续的字节子集,其中包含一个包含开始索引和一个独占的结束索引。举例来说,如果你有一个包裹ByteString字符串“foobar的”,并希望得到的只是“OOB”的ByteString那么这将是这样的:

val bs = ByteString("foobar") 
val subbs = bs.slice(1, 4)