Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.43 KB | None | 0 0
  1.  
  2.  
  3. public class NumbersInWords {
  4.  
  5.     private int numberToConvert;
  6.     private int millions;
  7.     private int thousands;
  8.     private int lessThanThousand;
  9.     private int hundreds;
  10.     private int dozens;
  11.     private int digits;
  12.     String[] wordDigits = {"","jeden","dwa","trzy","cztery","pięć","sześć","siedem","osiem","dziewięć"};
  13.     String[] wordTeens = {"dziesięć","jedenaście","dwanaście","trzynaście","czternaście","piętnaście","szesnaście","siedemnaście","osiemnaście","dziewiętnaście"};
  14.     String[] wordDozens = {"","","dwadzieścia","trzydzieści","czterdzieści"};
  15.     String[] wordHundreds = {"","sto","dwieście","trzysta","czterysta"};
  16.  
  17.  
  18.  
  19.     public String toWord(int number){
  20.         numberToConvert = number;
  21.  
  22.         return convertMillions() + convertThousands() + convertLessThanThousand();
  23.  
  24.     }
  25.  
  26.  
  27.     private void setMillions(){
  28.         millions = numberToConvert / 1000000;
  29.     }
  30.  
  31.     private void setThousands(){
  32.         thousands = (numberToConvert % 1000000) / 1000;
  33.     }
  34.  
  35.     private void setLessThanThousand(){
  36.         lessThanThousand = (numberToConvert % 1000000) % 1000;
  37.     }
  38.  
  39.     private String convertNumber(int num){
  40.         hundreds = num / 100 ;
  41.         dozens = (num % 100) / 10;
  42.         digits = (num % 100) % 10;
  43.         String wordNumber = "";
  44.         if (hundreds >0) {
  45.             if (hundreds < 5){
  46.                 wordNumber += wordHundreds[hundreds] + " ";
  47.             }
  48.             else {
  49.                 wordNumber += wordDigits[hundreds] +"set ";
  50.             }
  51.         }
  52.         switch (dozens) {
  53.             case 0:
  54.                 wordNumber += wordDigits[digits];
  55.                 break;
  56.             case 1:
  57.                 wordNumber += wordTeens[digits];
  58.                 break;
  59.             default:
  60.                 if (dozens < 5){
  61.                     wordNumber += wordDozens[dozens] + " " + wordDigits[digits];
  62.                 }
  63.                 else {
  64.                     wordNumber += wordDigits[dozens] + "dziesiąt " + wordDigits[digits];
  65.                 }
  66.         }
  67.         return wordNumber;
  68.  
  69.  
  70.  
  71.  
  72.     }
  73.  
  74.     private String convertMillions(){
  75.         String wordMillions = "";
  76.         setMillions();
  77.         if (millions > 0){
  78.             wordMillions = convertNumber(millions);
  79.             if (millions == 1){
  80.                     wordMillions += " milion ";
  81.             }
  82.             else if ((millions < 5) || ((dozens != 1) & (digits < 5)&(digits > 0))){
  83.                 wordMillions += " miliony ";
  84.             }
  85.             else wordMillions += " milionów ";
  86.  
  87.         }
  88.         return wordMillions;
  89.     }
  90.  
  91.  
  92.     private String convertThousands(){
  93.         String wordThousands = "";
  94.         setThousands();
  95.         if (thousands > 0){
  96.             wordThousands = convertNumber(thousands);
  97.             if (thousands == 1){
  98.                 wordThousands += " tysiąc ";
  99.             }
  100.             else if ((thousands < 5) || ((dozens != 1) & (digits < 5)&(digits > 0))){
  101.                 wordThousands += " tysiące ";
  102.             }
  103.             else wordThousands += " tysięcy ";
  104.  
  105.         }
  106.         return wordThousands;
  107.     }
  108.  
  109.  
  110.     private String convertLessThanThousand(){
  111.         String wordLessThanThousand = "";
  112.         setLessThanThousand();
  113.         if (lessThanThousand > 0){
  114.             wordLessThanThousand = convertNumber(lessThanThousand);
  115.         }
  116.         return wordLessThanThousand;
  117.     }
  118.  
  119.  
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement