The code that replaces each letter at a time will be much slower as it is looking through the entire string for a match for each letter. The RegEx isn't doing any real work for the pattern match as it is getting everything. The replace is also not a lot of work as it's just shifting everything within a certain range (lowercase) to a different range (uppercase). Ascii shift, basically.
On Wed, Aug 11, 2010 at 11:30 AM, Medic <hofme...@gmail.com> wrote: > > Haha. Now THAT is a nice waste of space. I like how you test for the > existence of the letter before you replace it. > > This actually makes me want to run speed tests on what would be faster: > > 1. testing for existence of lowercase letter - replacing lowercase with > uppercase using replace. > 2. not testing and just replacing the lowercase with the uppercase using > replace. > 3. just using replacenocase and replacing all letters with the uppercase > equiv. > > I bet if I showed this code to my boss he'd be like "whoa, that's deep." > > > > > On Wed, Aug 11, 2010 at 11:18 AM, Jacob <ja...@excaliburfilms.com> wrote: > >> >> Not a function, but.. >> >> <cfset tempString = "WhAtEvERStriNG"> >> >> <cfif find("A", tempString) gt 0> >> <cfset tempString = replace(tempString, "A", "a", "ALL")> >> </cfif> >> <cfif find("B", tempString) gt 0> >> <cfset tempString = replace(tempString, "B", "b", "ALL")> >> </cfif> >> <cfif find("C", tempString) gt 0> >> <cfset tempString = replace(tempString, "C", "c", "ALL")> >> </cfif> >> <cfif find("D", tempString) gt 0> >> <cfset tempString = replace(tempString, "D", "d", "ALL")> >> </cfif> >> <cfif find("E", tempString) gt 0> >> <cfset tempString = replace(tempString, "E", "e", "ALL")> >> </cfif> >> <cfif find("F", tempString) gt 0> >> <cfset tempString = replace(tempString, "F", "f", "ALL")> >> </cfif> >> <cfif find("G", tempString) gt 0> >> <cfset tempString = replace(tempString, "G", "g", "ALL")> >> </cfif> >> <cfif find("H", tempString) gt 0> >> <cfset tempString = replace(tempString, "H", "h", "ALL")> >> </cfif> >> <cfif find("I", tempString) gt 0> >> <cfset tempString = replace(tempString, "I", "i", "ALL")> >> </cfif> >> <cfif find("J", tempString) gt 0> >> <cfset tempString = replace(tempString, "J", "j", "ALL")> >> </cfif> >> <cfif find("K", tempString) gt 0> >> <cfset tempString = replace(tempString, "K", "k", "ALL")> >> </cfif> >> <cfif find("L", tempString) gt 0> >> <cfset tempString = replace(tempString, "L", "l", "ALL")> >> </cfif> >> <cfif find("M", tempString) gt 0> >> <cfset tempString = replace(tempString, "M", "m", "ALL")> >> </cfif> >> <cfif find("N", tempString) gt 0> >> <cfset tempString = replace(tempString, "N", "n", "ALL")> >> </cfif> >> <cfif find("O", tempString) gt 0> >> <cfset tempString = replace(tempString, "O", "o", "ALL")> >> </cfif> >> <cfif find("P", tempString) gt 0> >> <cfset tempString = replace(tempString, "P", "p", "ALL")> >> </cfif> >> <cfif find("Q", tempString) gt 0> >> <cfset tempString = replace(tempString, "Q", "q", "ALL")> >> </cfif> >> <cfif find("R", tempString) gt 0> >> <cfset tempString = replace(tempString, "R", "r", "ALL")> >> </cfif> >> <cfif find("S", tempString) gt 0> >> <cfset tempString = replace(tempString, "S", "s", "ALL")> >> </cfif> >> <cfif find("T", tempString) gt 0> >> <cfset tempString = replace(tempString, "T", "t", "ALL")> >> </cfif> >> <cfif find("U", tempString) gt 0> >> <cfset tempString = replace(tempString, "U", "u", "ALL")> >> </cfif> >> <cfif find("V", tempString) gt 0> >> <cfset tempString = replace(tempString, "V", "v", "ALL")> >> </cfif> >> <cfif find("W", tempString) gt 0> >> <cfset tempString = replace(tempString, "W", "w", "ALL")> >> </cfif> >> <cfif find("X", tempString) gt 0> >> <cfset tempString = replace(tempString, "X", "x", "ALL")> >> </cfif> >> <cfif find("Y", tempString) gt 0> >> <cfset tempString = replace(tempString, "Y", "y", "ALL")> >> </cfif> >> <cfif find("Z", tempString) gt 0> >> <cfset tempString = replace(tempString, "Z", "z", "ALL")> >> </cfif> >> >> <cfoutput>#tempString#</cfoutput> >> >> -----Original Message----- >> From: Rick Root [mailto:rick.r...@gmail.com] >> Sent: Monday, August 09, 2010 10:18 AM >> To: cf-community >> Subject: Dysfunctional contest >> >> >> Write a function to convert a string to lower case >> >> Do not use lcase() >> >> Example: >> >> >> <cffunction name="toLowerCase" access="public" output="false" >> returnType="string"> >> <cfargument name="src" type="string" required="yes"> >> >> <cfset var result = ""> >> <cfloop from="1" to="#len(arguments.src)#" step="1" index="pos"> >> <cfset thisChar = mid(arguments.src,pos,1)> >> <cfif asc(thisChar) gte 65 and asc(thisChar) lte 90> >> <cfset result &= chr(asc(thisChar)+32)> >> <cfelse> >> <cfset result &= thisChar> >> </cfif> >> </cfloop> >> <cfreturn result /> >> </cffunction> >> >> PRIZE: Respect for writing incredibly convoluted code, or lack of respect >> for having time to waste on such inanity >> >> Alternatively, write your own convoluted function for something similarly >> simple. >> >> This thread was inspired by the following article: >> >> >> http://www.easycfm.com/coldfusion/forums/printthread.cfm?Forum=12&Topic=1183 >> 1 >> >> Rick >> >> >> >> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-community/message.cfm/messageid:324655 Subscription: http://www.houseoffusion.com/groups/cf-community/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-community/unsubscribe.cfm