generateRandomString static method

String generateRandomString(
  1. int length, {
  2. GenerateRandomStringRules rules = GenerateRandomStringRules.combineNumberAlphabet,
  3. int minLength = 5,
})

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);
}