簡體   English   中英

將字節數組轉換為字符串

[英]convert a byte array to string

我的 Scala 代碼從字節流中接收到一個二進制文件,它看起來像 [61 62 63 64]。內容是“abcd”。 我使用 toString 將其轉換為 p,但失敗了。 如何將其打印為字符串?

如果你知道它的字符集,你總是可以將字節數組轉換為字符串,

val str = new String(bytes, StandardCharsets.UTF_8)

如果您不指定任何Charset則將使用默認Charset

您可以將字節數組轉換為字符數組,然后從中構造一個字符串

scala> val bytes = Array[Byte]('a','b','c','d')
bytes: Array[Byte] = Array(97, 98, 99, 100)

scala> (bytes.map(_.toChar)).mkString 
res10: String = abcd

scala> 

我正在尋找的字節到字符串函數是每個字節只是一個表示為字符串的數值,沒有任何隱含的編碼。 多虧了這里提供的建議,我最終得到了以下功能,它適用於我的目的。 我把它貼在這里以防對其他人有用。

  def showBytes(bytes: Array[Byte]):String = {
    bytes.map(b => "" + b.toInt).mkString(" ")
  }

此函數將返回一個字符串,其中包含以空格分隔的數值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM