Как сгенерировать буквенно-цифровой код?

Пишу приложение под Android на kotlin. Предположим у приложения всего один экран, в котором расположено только одно TextView. Нужно сгенерировать случайным образом буквенно-цифровой код (из 11 символов) и поместить его в это TextView при старте приложения. Как это сделать, подскажите пожалуйста.


Ответы (2 шт):

Автор решения: AVRamones

Ну вот на просторах интернета можно найти такой утилитный Java класс для генерации кода (на Kotlin перепишите только) :

public class GeneratePassword {


public static final String DATA = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz|!£$%&/=@#";
public static Random RANDOM = new Random();

public static String randomString(int len) {
    StringBuilder sb = new StringBuilder(len);

    for (int i = 0; i < len; i++) {
        sb.append(DATA.charAt(RANDOM.nextInt(DATA.length())));
    }

    return sb.toString();
} 
}

Ну а потом вставляете результат генерации в ваш TextView :

textView.setText(GeneratePassword.randomString(11));
→ Ссылка
Автор решения: Eugene Krivenja

Коротко и по-котлиновски можно так

val alphaNumeric = ('a'..'z') + ('A'..'Z') + ('0'..'9')
val str = alphaNumeric.shuffled().take(11).joinToString("")

Символы не повторяются и длина не может превышать количества символов (62 в примере).

→ Ссылка