2016-03-08 95 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)