2016-10-11 48 views
0

あなたはうまくやっていると思っています。私はちょうどスカラの基本プログラミングを始めました。foreachや他の何かが最良の方法だと思っています。Scalaランダムな文字列

は、どのように私はこの結果を生成するために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 
+2

あなたはこれを自分でやってみませんか?あなたは他の回答より多くを学ぶでしょう –

答えて

2

最も簡単な方法は、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) 

は今、あなたは、ランダムな順序でこれらの10文字のリストを持っています。

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) 
... 

またはリストでそれらを使用することができます。

+0

Omg、あなたはとても役に立ちます!非常に兄さんありがとう!ありがとうございました。 –

0

あなたはランダムなパッケージから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) 

は、変数のリストに結果を割り当てます。

+0

downvoteの理由は何ですか? – ryan

関連する問題