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