Java's message formatting for numbers, dates etc is actually quite powerful, you can do things like specify different messages based on whether the number passed in is zero, one or many, for example:
There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.
The above message yields the following for 0, 1 or 2 files respectively:
There are no files.
There is one file.
There are 2 files.
Using this means you can encode locale specific rules around plurals, handling of zero, etc, which only works if you can work with numbers, so supporting just String won't work.