Thursday, June 12, 2008
Occasionally I need to change a a camel case or Pascal case string into a human readable string.  Since I find myself doing this again and again, I figured I better post it here.


private string HumanizeString(string source)
{
StringBuilder sb = new StringBuilder();

char last = char.MinValue;
foreach (char c in source)
{
if (char.IsLower(last) &&
char.IsUpper(c))
{ sb.Append(' '); }
sb.Append(c);
last = c;
}
return sb.ToString();
}

Thursday, June 12, 2008 3:47:38 PM (Central Standard Time, UTC-06:00)  #    Comments [2]
Wednesday, July 09, 2008 10:34:47 AM (Central Standard Time, UTC-06:00)
Translated to Java (while making sure that the first character is upper case):

import java.text.CharacterIterator;
import java.text.StringCharacterIterator;

public static String humanizeString( String source ) {
StringBuilder sb = new StringBuilder();
char last = ' ';
final StringCharacterIterator iterator = new StringCharacterIterator( source );
char c = Character.toUpperCase( iterator.current() );
while ( c != CharacterIterator.DONE ) {
if ( Character.isLowerCase( last ) && Character.isUpperCase( c ) ) {
sb.append( ' ' );
}
sb.append( c );
last = c;
c = iterator.next();
}
return sb.toString();
}

Sunday, August 03, 2008 12:30:25 PM (Central Standard Time, UTC-06:00)
I did my own slightly different so that capitalized acronyms stay together, so UIUnlock becomes UI Unlock, for example.

http://www.darkhelmetlive.com/blog/2008/08/02/pascal-case-to-human-readable-with-csharp-extension-methods
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):