2

我正在将文件读入字节数组,但是字节数组有一些我想删除的尾随 0(返回没有 0 的新字节数组)。但是字节数组不是一个简单的东西,所以我不能在它上面使用过滤器/删除/映射。

是对字节数组使用递归的唯一解决方案吗?

谢谢!

4

2 回答 2

4

您应该能够对字节数组使用序列操作:

(byte-array (take-while pos? (.getBytes (slurp "some/binary/file.dat"))))
于 2012-05-26T04:48:47.620 回答
1

Clojure 中的字节数组是一个序列,而过滤器、映射和其他函数对序列起作用。

您可以使用此函数删除尾随零:

(defn pos-byte-arrayE
    [seq]
    (take-while pos? seq))

您可以在字节数组上使用过滤器来删除所有零。

(defn pos-byte-arrayF
    [seq]
    (filter pos? seq))

repl-test.core=> (pos-byte-arrayF [1 2 3 0])
(1 2 3)
于 2012-05-26T15:04:08.997 回答