Motivation:
Jeg skulle på arbejde bruge muligheden for at konvertere et vilkårligt tal beløb til tekst. Og det skulle kunne håndtere tal på op til 1 mia.
Problemet:
Problemet ved at skulle lave sådan en algoritme er at der skal tages højde for alle de mulige talkombinationer, der kan opstå.
For at undgå at skulle repræsentere alle kombinationerne, skal der findes nogle talmønstre, der så kan genbruges.
Løsning:
Sourcekode til eksempel:
Test.java
CurrToText2.java
Klassen CurrToText indeholder kun en public metode, og der er herfra at beløbet omskrives til en tekststreng.
Ved hjælp af Java's NumberFormat bliver beløbet formatteret med de rette punktummer og kommaer.
Herefter formatteres ørebeløbet og gemmes i en variabel.
Det interessante sker i metoderne udregningA, udregningB og udregningC, hvor beløbet bliver omskrevet til tekst.
I metoden udregningA er den specielle situation, om der skal skrives en eller et, afhængig af om det er tusinder eller ikke, det drejer sig om.
I udregningB sker de specielle situationer i forhold til variablen joker.
Ud fra værdien i joker, kan beløbet få en række forskellige værdier.
Metoden udregningC er triviel da der her ikke er nogle specielle tilfælde.