threeNumbersToLetter function

String threeNumbersToLetter(
  1. String num
)

Implementation

String threeNumbersToLetter(String num) {
  if (int.parse(num) == 0) {
    return '';
  }
  int parsedInt = int.parse(num);
  if (parsedInt < 10) {
    return letters[0][parsedInt];
  }
  if (parsedInt <= 20) {
    return letters[1][parsedInt - 10];
  }
  if (parsedInt < 100) {
    int one = parsedInt % 10;
    int ten = (parsedInt - one) ~/ 10;
    if (one > 0) {
      return '${letters[2][ten]}$delimiter${letters[0][one]}';
    }
    return letters[2][ten];
  }
  int one = parsedInt % 10;
  int hundreds = (parsedInt - (parsedInt % 100)) ~/ 100;
  int ten = (parsedInt - ((hundreds * 100) + one)) ~/ 10;
  List<String> out = [letters[3][hundreds]];
  int secondPart = ((ten * 10) + one);
  if (secondPart > 0) {
    if (secondPart < 10) {
      out.add(letters[0][secondPart]);
    } else if (secondPart <= 20) {
      out.add(letters[1][secondPart - 10]);
    } else {
      out.add(letters[2][ten]);
      if (one > 0) {
        out.add(letters[0][one]);
      }
    }
  }
  return out.join(delimiter);
}