aboutsummaryrefslogtreecommitdiff
path: root/Java/Number_Names/src/Program.java
diff options
context:
space:
mode:
authorSyndamia <kami02882@gmail.com>2019-07-31 15:46:56 +0300
committerSyndamia <kami02882@gmail.com>2019-07-31 15:46:56 +0300
commite173839c44257d0187bb2ec087124db6e2ecde99 (patch)
tree52eb84ab8f858f1fe437e24d6104a0bdd50d17e2 /Java/Number_Names/src/Program.java
parenta48a6e1c302a5e90235a82e73517cd43f9c1432e (diff)
downloadSelf-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar
Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar.gz
Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.zip
Optimised Number names code
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();