Skip to content

Instantly share code, notes, and snippets.

@tmyymmt
Created September 14, 2012 09:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmyymmt/3721117 to your computer and use it in GitHub Desktop.
Save tmyymmt/3721117 to your computer and use it in GitHub Desktop.
hex2bytes and bytes2hex
object HexBytesUtil {
def hex2bytes(hex: String): Array[Byte] = {
if(hex.contains(" ")){
hex.split(" ").map(Integer.parseInt(_, 16).toByte)
} else if(hex.contains("-")){
hex.split("-").map(Integer.parseInt(_, 16).toByte)
} else {
hex.sliding(2,2).toArray.map(Integer.parseInt(_, 16).toByte)
}
}
def bytes2hex(bytes: Array[Byte], sep: Option[String] = None): String = {
sep match {
case None => bytes.map("%02x".format(_)).mkString
case _ => bytes.map("%02x".format(_)).mkString(sep.get)
}
// bytes.foreach(println)
}
def example {
val data = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21 21"
val bytes = hex2bytes(data)
println(bytes2hex(bytes, Option(" ")))
val data2 = "48-65-6C-6C-6F-20-57-6F-72-6C-64-21-21"
val bytes2 = hex2bytes(data2)
println(bytes2hex(bytes2, Option("-")))
val data3 = "48656C6C6F20576F726C642121"
val bytes3 = hex2bytes(data3)
println(bytes2hex(bytes3))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment