Advertisement
Wolfinstein

Untitled

Oct 18th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. import java.util.StringTokenizer;
  2.  
  3. public class NumberToWordsConverter {
  4.  
  5.     public static final String[] units = {
  6.             "", "Jeden", "Dwa", "Trzy", "Cztery", "Piec", "Szesc", "Siedem",
  7.             "Osiem", "Dziewiec", "Dziesiec", "Jedenascie", "Dwanascie", "Trzynascie", "Czternascie",
  8.             "Pietnascie", "Szesnascie", "Siedemnascie", "Osiemnascie", "Dziewietnascie"
  9.     };
  10.  
  11.     public static final String[] tens = {
  12.             "", // 0
  13.             "", // 1
  14.             "Dwadziescia", // 2
  15.             "Trzydziesci", // 3
  16.             "Czterdziesci", // 4
  17.             "Piecdziesiat", // 5
  18.             "Szescdziesiat", // 6
  19.             "Siedemdziesiat", // 7
  20.             "Osiemdziesiat", // 8
  21.             "Dziewiedziesiat" // 9
  22.     };
  23.  
  24.     public static String doubleConvert(double n) {
  25.         String output = n + "";
  26.         StringTokenizer token = new StringTokenizer(output, ".");
  27.         String whole = token.nextToken();
  28.         String fract = token.nextToken();
  29.  
  30.         try {
  31.             output = convert(Integer.parseInt(whole)) + " ";
  32.             output = output + "Kropka";
  33.  
  34.             for (int i = 0; i < fract.length(); i++) {
  35.                 String get = convert(Integer.parseInt(fract.charAt(i) + ""));
  36.                 if (get.isEmpty()) {
  37.                     output = output + " " + "Zero";
  38.                 } else {
  39.                     output = output + " " + get;
  40.                 }
  41.             }
  42.  
  43.         } catch (NumberFormatException nf) {
  44.         }
  45.         return output;
  46.     }
  47.  
  48.     public static String convert(int n) {
  49.         if (n < 0) {
  50.             return "Minus " + convert(-n);
  51.         }
  52.  
  53.         if (n < 20) {
  54.             return units[n];
  55.         }
  56.  
  57.         if (n < 100) {
  58.             return tens[n / 10] + ((n % 10 != 0) ? " " : "") + units[n % 10];
  59.         }
  60.  
  61.         if (n < 1000) {
  62.             return units[n / 100] + " Set " + ((n % 100 != 0) ? " " : "") + convert(n % 100);
  63.         }
  64.  
  65.         if (n < 1000000) {
  66.             return convert(n / 1000) + " Tysiecy " + ((n % 1000 != 0) ? " " : "") + convert(n % 1000);
  67.         }
  68.  
  69.         if (n < 1000000000) {
  70.             return convert(n / 1000000) + " Milionow " + ((n % 1000000 != 0) ? " " : "") + convert(n % 1000000);
  71.         }
  72.  
  73.         return convert(n / 1000000000) + " Bilionow " + ((n % 1000000000 != 0) ? " " : "") + convert(n % 1000000000);
  74.     }
  75.  
  76.  
  77.     public static void main(String[] args) {
  78.  
  79.  
  80.                 System.out.println(doubleConvert(12346.3));
  81.  
  82.  
  83.  
  84.     }
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement