aboutsummaryrefslogtreecommitdiff
path: root/Java/Number_Names/src/Program.java
diff options
context:
space:
mode:
Diffstat (limited to 'Java/Number_Names/src/Program.java')
-rw-r--r--Java/Number_Names/src/Program.java89
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();