如何在Scala中转换字符串格式

时间:2018-09-03 11:41:31

标签: scala

  

我有一个字符串的字符串是类似这样的

     

232302001A7102186410045298B9A000A00000E100010160120903130108920050433630315F433133302E3030342E3132372E30315F54312E312E3000000064666266356135326137613464633039633430650000000000000000000000000000000000000000000001005D28   内容;现在我想将它转化为23,23,02,00, 1A等这样的形式,但是不知道怎么做,想了半天没一点想法,>求大神指点一下***

2 个答案:

答案 0 :(得分:0)

这就是你可以做的。

val str = "232302001A710218641004529" +
    "8B9A000A00000E100010160120903130108920050433630315F433133302E3030342E31" +
    "32372E30315F54312E312E300000006466626635613532613761346463303963343065" +
    "0000000000000000000000000000000000000000000001005D28"

  val ans = str.sliding(2,2).toList
  println(ans)
//List(23, 23, 02, 00, 1A, 71, 02, 18, 64, 10, 04, 52, 98, B9, A0, 00, A0, 00, 00, E1, 00, 01, 01, 60, 12, 09, 03, 13, 01, 08, 92, 00, 50, 43, 36, 30, 31, 5F, 43, 31, 33, 30, 2E, 30, 30, 34, 2E, 31, 32, 37, 2E, 30, 31, 5F, 54, 31, 2E, 31, 2E, 30, 00, 00, 00, 64, 66, 62, 66, 35, 61, 35, 32, 61, 37, 61, 34, 64, 63, 30, 39, 63, 34, 30, 65, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 00, 5D, 28)

或者您可以使用分组,因为m,n的值等于我们应该使用分组的值。像这样

str.grouped(2)

答案 1 :(得分:0)

可以使用.grouped方法将其存档,如下所示:

val string = "232302001A710218641004529"

val res = string.grouped(2).toList
// res: List[String] = List("23", "23", "02", "00", "1A", ...)

我认为它比带有两个参数的.sliding更清楚。