Spell out a numeric value

Problem:

You want to spell out a localized number like "thirty-six."

Solution:

ICU4J provides some number formatting capabilities that core Java does not.  One of those features is the ability to spell out a numeric value. 

 

This uses the RuleBasedNumberFormat class to convert a numeric value to a spelled out value.  In other words "75" can be converted to "seventy-five."  This can also be combined with MessageFormat.

 

To spell out a numeric value:

//Get a RuleBasedNumberFormat appropriate for French spellout

RuleBasedNumberFormat rbnf = new RuleBasedNumberFormat(ULocale.FRENCH,RuleBasedNumberFormat.SPELLOUT);

//Call format passing in the numeric value to be formatted

System.out.println(rbnf.format(345));

 

 


 The output:

trois cents quarante-cinq