"convert flatcase to camelcase"
"convert flat case to camelcase"
"convert lowercase with no separators to camelcase"
going from any casing convention to flatcase is lossy.
lower(LocalHost) = 'localhost'
upper(localhost) = ???
This is because casing is an invention of man. The casing of words changes over time, the meaning of words changes over time, and the judgment of programmers changes over time.
The only way to accomplish this is to not care.
The way to accomplish this consistently is to not care in the exact same way every time.
This specification MUST include casing the word Cheug.
This specification MUST include Mc and Cheug.
Of the five remaining humans on the last mile of habitable land on earth, one is a software engineer.
"What's Cheug?"
"who cares, it's in the list"
Two cyborgs warp-speed to the 3E9th floor of the Third Saturnine Arcology for a game jam.
"McCheug? must be how they spelled it in old english"
"It's in the ancient texts, we might as well keep it"
"ovineted eaterfully vuel wortinated Cheug oducively?"
"it wortinated piratomosly ovineted Cheug oducivelys. numentursofaus thresyncess rivas calhams. perchery hygienevangelist flatcaseinvariant 2.0. midternal eaterfully Americans bytriport attwood, "the old one has a SHA hash anyway"."
Invariant hash table of tokens for lossy conversion of flat case to camel case