2015-05-06 133 views
3

我需要一些测试公司的名称,如“rnd_company_blah23haf9”,“rnd_company_g356fhg57”等生成的字母数字字符串

是否有可能像做

import scala.util.Random 
val company = s"rnd_company_${Random.alphanumeric take 10 ?????}" 

只要有人可以填写??? ??当然。

回答

15

使用.mkString("")Stream创建String

scala> val company = s"rnd_company_${Random.alphanumeric take 10 mkString}" 
company: String = rnd_company_BbesF0EY1o 
+0

旁注:我的编译器告诉我在“”删除不必要的偏见。所以你可以直接写'take 10 mkString'“'。 – Wolfsblvt

+1

不需要显式指定空字符串。只是'Random.alphanumeric需要10 mkString' –

2

你有一个例子here

scala> val x = Random.alphanumeric 
x: scala.collection.immutable.Stream[Char] = Stream(Q, ?) 

scala> x take 10 foreach println 
Q 
n 
m 
x 
S 
Q 
R 
e 
P 
B 

所以,你可以试试这个:

import scala.util.Random 
    val company = s"rnd_company_${(xx take 10).mkString}" 
+0

这正是例子我开始。你的代码中有些东西缺失(Random。*)? – FelixHJ

+0

我忘了将它添加到示例中。谢谢 –