. . . are the only numbers you should ever explicitly support. While this is a great idea, being able to only deal with numbers up to 9999 is a bit of a bugaboo. You don't actually have an algorithm here, but just a bunch of switches to transform the text string. Roman numerals being mathematical, working the math on a string (which only requires single-character lookahead) is a better solution.
I've got good news, and I've got bad news: The universe is merely a figment of my imagination. Now are you ready for the bad news?
I've got good news, and I've got bad news:
The universe is merely a figment of my imagination.
Now are you ready for the bad news?