我正在使用 Scala 2.7.7
我在访问文档方面遇到了困难,因此代码片段会很大。
上下文
我解析长度为4或16个字节的IP地址。我需要一个字节数组,以传递到java.net.InetAddress。 String.split(separator).map(_。toByte)的结果返回一个Iterable实例。
我看到两种解决问题的方法
当前的实施发布在my other question about memory leaks。
答案 0 :(得分:2)
在Scala 2.7中,Iterable
有一个名为copyToArray
的方法。
答案 1 :(得分:1)
我强烈建议你不要在这里使用数组,除非你必须使用特定的库/框架然后需要一个数组。
通常情况下,使用原生Scala类型会更好:
String.split(separator).map(_.toByte).toList
//or
String.split(separator).map(_.toByte).toSeq
<强>更新强>
假设您的原始字符串是一个分隔的主机名列表,为什么不只是:
val namesStr = "www.sun.com;www.stackoverflow.com;www.scala-tools.com"
val separator = ";"
val addresses = namesStr.split(separator).map(InetAddress.getByName)
这会给你一个InetAddress
个实例的迭代。