【问题标题】:Scala Random StringScala 随机字符串
【发布时间】:2016-10-11 15:54:25
【问题描述】:

希望你做得好,我刚开始 scala 基本编程,我想用 foreach 或其他你认为最好的方法生成一些字符串变量。

我如何使用scala.util.Random 来生成这个结果:

Var 1A:String = random between A to J
Var 1B:String = random between A to J but not 1A value
Var 1C:String = random between A to J, not 1A and not 1B
Var 1D to 1J also should have different random value from A to J

所以基本上从1A到1J可能是这样的:

Var 1A = "B"
Var 1B = "G"
Var 1C = "A"
Var 1D = "D"
Var 1E = "H"
and so on until 1J

【问题讨论】:

  • 您为什么不自己尝试一下呢?你会比从其他人提供的答案中学到更多

标签: scala random


【解决方案1】:

最简单的方法可能是使用Random.shuffle

首先构建你的字符列表:

scala> val chars = ('A' to 'J').toList
chars: List[Char] = List(A, B, C, D, E, F, G, H, I, J)

然后洗牌:

scala> val shuffled = scala.util.Random.shuffle(chars)
shuffled: List[Char] = List(C, E, G, B, J, A, F, H, D, I)

现在你已经得到了一个随机排列的这十个字符的列表。如果你需要引用它们的变量,你可以这样做:

scala> val List(a, b, c, d, e, f, g, h, i, j) = shuffled
a: Char = C
b: Char = E
c: Char = G
d: Char = B
e: Char = J
f: Char = A
g: Char = F
h: Char = H
i: Char = D
j: Char = I

(请注意,1A 不是有效的 Scala 标识符,Val 不是有效的语法。)

或者你可以通过索引来引用它们:

val a = shuffled(0)
val b = shuffled(1)
...

或者您可以在列表中使用它们。

【讨论】:

  • 天哪,你太有帮助了!非常非常感谢兄弟!谢谢。
【解决方案2】:

您可以使用随机包中的shuffle

scala> scala.util.Random.shuffle(('A' to 'J').toList map (_.toString))
res2: List[String] = List(C, F, D, E, G, A, B, I, H, J)

如果愿意,可以将结果分配给变量列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2022-12-05
    • 2017-05-20
    • 1970-01-01
    • 2014-02-09
    • 2017-08-01
    相关资源
    最近更新 更多