generateRandomString static method
String
generateRandomString(
- int length, {
- GenerateRandomStringRules rules = GenerateRandomStringRules.combineNumberAlphabet,
- int minLength = 5,
Generate random string take length parameter to determine number of letter
Rules Available :
GenerateRandomStringRules.onlyNumber => 0123456789
GenerateRandomStringRules.onlyAlphabet => ABCDEFGHIJabcdefghij
GenerateRandomStringRules.onlyAlphabetLowercase => abcdefghij
GenerateRandomStringRules.onlyAlphabetUppercase => ABCDEFGHIJ
GenerateRandomStringRules.combineNumberAlphabet => ABCDE12345abcde
GenerateRandomStringRules.combineNumberAlphabetLowercase => 12345abcde
GenerateRandomStringRules.combineNumberAlphabetUppercase => 12345ABCDE
Implementation
static String generateRandomString(
int length, {
GenerateRandomStringRules rules =
GenerateRandomStringRules.combineNumberAlphabet,
int minLength = 5,
}) {
if (length < minLength) {
throw Exception('Panjang karakter kurang dari batas minimum karakter');
}
final Random _random = Random();
var concate = '';
const lowerCaseCharacter = 'abcdefghijklmnopqrstuvwxyz';
const upperCaseCharacter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const number = '1234567890';
switch (rules) {
case GenerateRandomStringRules.onlyNumber:
concate = number;
break;
case GenerateRandomStringRules.onlyAlphabet:
concate = lowerCaseCharacter + upperCaseCharacter;
break;
case GenerateRandomStringRules.onlyAlphabetLowercase:
concate = lowerCaseCharacter;
break;
case GenerateRandomStringRules.onlyAlphabetUppercase:
concate = upperCaseCharacter;
break;
case GenerateRandomStringRules.combineNumberAlphabet:
concate = number + lowerCaseCharacter + upperCaseCharacter;
break;
case GenerateRandomStringRules.combineNumberAlphabetLowercase:
concate = number + lowerCaseCharacter;
break;
case GenerateRandomStringRules.combineNumberAlphabetUppercase:
concate = number + upperCaseCharacter;
break;
default:
}
final charCodes = Iterable.generate(
length,
(_) => concate.codeUnitAt(_random.nextInt(concate.length)),
);
return String.fromCharCodes(charCodes);
}