aboutsummaryrefslogtreecommitdiff
path: root/Java/Beginer training
diff options
context:
space:
mode:
Diffstat (limited to 'Java/Beginer training')
-rw-r--r--Java/Beginer training/out/production/Beginer training/NumberName.classbin4015 -> 4947 bytes
-rw-r--r--Java/Beginer training/src/NumberName.java120
2 files changed, 0 insertions, 120 deletions
diff --git a/Java/Beginer training/out/production/Beginer training/NumberName.class b/Java/Beginer training/out/production/Beginer training/NumberName.class
index 0bf8239..39408a5 100644
--- a/Java/Beginer training/out/production/Beginer training/NumberName.class
+++ b/Java/Beginer training/out/production/Beginer training/NumberName.class
Binary files differ
diff --git a/Java/Beginer training/src/NumberName.java b/Java/Beginer training/src/NumberName.java
deleted file mode 100644
index 34f735c..0000000
--- a/Java/Beginer training/src/NumberName.java
+++ /dev/null
@@ -1,120 +0,0 @@
-import java.util.ArrayList;
-import java.math.*;
-import java.util.Scanner;
-
-public class NumberName {
- public static void main(String args[]){
- //Used http://www.englishlessonsbrighton.co.uk/saying-large-numbers-english/ and https://www.grammarly.com/blog/hyphen-in-compound-numbers/
- Scanner scn = new Scanner(System.in);
-
- System.out.println("Number to British English text");
- System.out.println("How to use: type a whole number, press enter and the program will say it's full proper name. Close the program to stop it.");
- System.out.println("NOTE: Your numbers must be between 2147483647 and -2147483648 (any characters that are not numbers and - will result in error)");
-
- while (true) {
- try {
- int n = Integer.parseInt(scn.nextLine().trim());
- System.out.println(NameOfNumber(n));
- } catch (Exception ex) {
- System.out.println("ERROR: Please type a whole number between 2147483647 and -2147483648 (NOTE: any characters that are not numbers and - will result in this error)");
- }
- }
- }
-
- public static String NameOfNumber(int num) {
- StringBuilder name = new StringBuilder(num < 0 ? "negative " : "");
- var number_parts = new ArrayList<Integer>();
-
- while (num != 0) {
- number_parts.add(Math.abs(num % 1000));
- num /= 1000;
- }
-
- for (int i = number_parts.size() - 1; i > -1; i--){
- int curr_num = number_parts.get(i);
-
- if ((curr_num + "").length() == 3) {
- name.append(SmallNumName(curr_num / 100)).append(" hundred");
-
- curr_num %= 100;
- if (curr_num != 0) name.append(" and ");
- }
- name.append(SmallNumName(curr_num));
-
- 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(1) / 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(2) / 100 == 0) name.append(" and ");
- else name.append(", ");
- }
- } break;
- }
- }
- return name.toString();
- }
-
- private static String SmallNumName(int num) {
- int part = 1;
- switch (num) {
- case 0: return "";
- case 1: return "one";
- case 2: return "two";
- case 3: return "three";
- case 4: return "four";
- case 5: return "five";
- case 6: return "six";
- case 7: return "seven";
- case 8: return "eight";
- case 9: return "nine";
-
- case 10: return "ten";
- case 11: return "eleven";
- case 12: return "twelve";
- case 13: return "thirteen";
- case 15: return "fifteen";
- case 18: return "eighteen";
- case 14: part = 4;
- case 16: if (part == 1) part = 6;
- case 17: if (part == 1) part = 7;
- case 19: if (part == 1) part = 9;
- return SmallNumName(part) + "teen";
- }
-
- if (num > 19 && num < 100) {
- int f_digit = num / 10;
- StringBuilder name = new StringBuilder();
-
- switch (f_digit) {
- case 2: name.append("twenty"); break;
- case 3: name.append("thirty"); break;
- case 4: name.append("forty"); break;
- case 5: name.append("fifty"); break;
- case 8: name.append("eighty"); break;
-
- default: name.append(SmallNumName(f_digit)).append("ty"); break;
- }
- return num % 10 != 0 ? name + "-" + SmallNumName(num % 10) : name.toString();
- }
- return "ERR";
- }
-}