Случайная строка Scala

#scala #random

#scala #Случайный

Вопрос:

Надеюсь, у вас все хорошо, я только начал программировать на scala basic, я хочу сгенерировать некоторую строковую переменную с помощью 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
  

Комментарии:

1. Почему бы вам не попробовать сделать это самостоятельно? Вы узнаете больше, чем из ответов, которые предоставляют другие

Ответ №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)
...
  

Или вы могли бы просто работать с ними в списке.

Комментарии:

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)
  

Если хотите, присвойте результат списку переменных.