diff options
author | Paul Phillips <paulp@improving.org> | 2009-08-25 14:51:19 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-08-25 14:51:19 +0000 |
commit | 8aed300faa06fbae28f4108be6c9ef2a4b9902ef (patch) | |
tree | 7709634a6bc7da645694b0e985eb12b068e9a7a2 /src | |
parent | 7aa4764ed2fc706427509f13bc10bd7d5704a6ea (diff) | |
download | scala-8aed300faa06fbae28f4108be6c9ef2a4b9902ef.tar.gz scala-8aed300faa06fbae28f4108be6c9ef2a4b9902ef.tar.bz2 scala-8aed300faa06fbae28f4108be6c9ef2a4b9902ef.zip |
Added nextString(length: Int) to util.Random.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/util/Random.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/library/scala/util/Random.scala b/src/library/scala/util/Random.scala index 5a86a1a278..b88411605f 100644 --- a/src/library/scala/util/Random.scala +++ b/src/library/scala/util/Random.scala @@ -68,6 +68,23 @@ class Random(val self: java.util.Random) { */ def nextLong(): Long = self.nextLong() + /** Returns a pseudorandomly generated String. This routine does + * not take any measures to preserve the randomness of the distribution + * in the face of factors like unicode's variable-length encoding, + * so please don't use this for anything important. It's primarily + * intended for generating test data. + * + * @param length the desired length of the String + * @return the String + */ + def nextString(length: Int) = { + def toChar(ch: Int): List[Char] = + try new String(Array(ch), 0, 1) toList + catch { case _: IllegalArgumentException => Nil } + + Stream continually toChar(nextInt()) flatMap (x => x) take length mkString + } + def setSeed(seed: Long) { self.setSeed(seed) } } |