diff options
Diffstat (limited to 'Java/Number_Names/src/Program.java')
| -rw-r--r-- | Java/Number_Names/src/Program.java | 89 |
1 files changed, 35 insertions, 54 deletions
diff --git a/Java/Number_Names/src/Program.java b/Java/Number_Names/src/Program.java index ed9ef79..6dabf73 100644 --- a/Java/Number_Names/src/Program.java +++ b/Java/Number_Names/src/Program.java @@ -47,63 +47,44 @@ public class Program { } name.append(SmallNumberName((int)curr_num)); + boolean to_determine = true; switch (i) { - case 1: - if (number_parts.get(1) != 0) { - name.append(" thousand"); - - if (number_parts.get(0) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - - case 2: - if (number_parts.get(2) != 0) { - name.append(" million"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - - case 3: - if (number_parts.get(3) != 0) { - name.append(" milliard"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - case 4: - if (number_parts.get(4) != 0) { - name.append(" billion"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - case 5: - if (number_parts.get(5) != 0) { - name.append(" billiard"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0 || number_parts.get(4) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; case 6: - if (number_parts.get(6) != 0) { + if (number_parts.get(6) != 0) { //to_determine is always true when it reaches here name.append(" trillion"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0 || number_parts.get(4) != 0 || number_parts.get(5) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; + to_determine = false; + } + case 5: + if (number_parts.get(5) != 0 && to_determine) { + name.append(" billiard"); + to_determine = false; + } + case 4: + if (number_parts.get(4) != 0 && to_determine) { + name.append(" billion"); + to_determine = false; + } + case 3: + if (number_parts.get(3) != 0 && to_determine) { + name.append(" milliard"); + to_determine = false; + } + case 2: + if (number_parts.get(2) != 0 && to_determine) { + name.append(" million"); + to_determine = false; + } + case 1: + if (number_parts.get(1) != 0 && to_determine) { + name.append(" thousand"); + to_determine = false; + } + + if (number_parts.subList(0, i).stream().anyMatch(n -> n != 0) && !to_determine) { + if (number_parts.get(0) / 100 == 0) name.append(" and "); + else name.append(", "); + } + break; } } return name.toString(); |
