public static TitleCase ( string input, bool ignoreShortWords ) : String | ||
input | string | The string to convert. |
ignoreShortWords | bool | If true, does not capitalize the most common 70 prepositions. |
return | String |
public static String TitleCase(string input, bool ignoreShortWords)
{
List<string> ignoreWords = null;
if (ignoreShortWords)
{
ignoreWords = new List<string>();
ignoreWords.Add("a");
ignoreWords.Add("is");
ignoreWords.Add("was");
ignoreWords.Add("the");
ignoreWords.Add("aboard");
ignoreWords.Add("about");
ignoreWords.Add("above");
ignoreWords.Add("across");
ignoreWords.Add("after");
ignoreWords.Add("against");
ignoreWords.Add("along");
ignoreWords.Add("amid");
ignoreWords.Add("among");
ignoreWords.Add("anti");
ignoreWords.Add("around");
ignoreWords.Add("as");
ignoreWords.Add("at");
ignoreWords.Add("before");
ignoreWords.Add("behind");
ignoreWords.Add("below");
ignoreWords.Add("beneath");
ignoreWords.Add("beside");
ignoreWords.Add("besides");
ignoreWords.Add("between");
ignoreWords.Add("beyond");
ignoreWords.Add("but");
ignoreWords.Add("by");
ignoreWords.Add("concerning");
ignoreWords.Add("considering");
ignoreWords.Add("despite");
ignoreWords.Add("down");
ignoreWords.Add("during");
ignoreWords.Add("except");
ignoreWords.Add("excepting");
ignoreWords.Add("excluding");
ignoreWords.Add("following");
ignoreWords.Add("for");
ignoreWords.Add("from");
ignoreWords.Add("in");
ignoreWords.Add("inside");
ignoreWords.Add("into");
ignoreWords.Add("like");
ignoreWords.Add("minus");
ignoreWords.Add("near");
ignoreWords.Add("of");
ignoreWords.Add("off");
ignoreWords.Add("on");
ignoreWords.Add("onto");
ignoreWords.Add("opposite");
ignoreWords.Add("outside");
ignoreWords.Add("over");
ignoreWords.Add("past");
ignoreWords.Add("per");
ignoreWords.Add("plus");
ignoreWords.Add("regarding");
ignoreWords.Add("round");
ignoreWords.Add("save");
ignoreWords.Add("since");
ignoreWords.Add("than");
ignoreWords.Add("through");
ignoreWords.Add("to");
ignoreWords.Add("toward");
ignoreWords.Add("towards");
ignoreWords.Add("under");
ignoreWords.Add("underneath");
ignoreWords.Add("unlike");
ignoreWords.Add("until");
ignoreWords.Add("up");
ignoreWords.Add("upon");
ignoreWords.Add("versus");
ignoreWords.Add("via");
ignoreWords.Add("with");
ignoreWords.Add("within");
ignoreWords.Add("without");
}
Boolean isBetweenWords = true;
String newString = input.ToLower();
StringBuilder sb = new StringBuilder(newString.Length);
for (Int32 x = 0; x < newString.Length; x++)
{
Char c = newString[x];
if (c > 96)
{
if (isBetweenWords)
{
Boolean goAhead = true;
if (ignoreShortWords)
{
for (Int32 y = 0; y < ignoreWords.Count; y++)
{
if (newString.Length - x >= ignoreWords[y].Length)
{
if (newString.Substring(x, ignoreWords[y].Length) == ignoreWords[y].ToLower())
{
if (newString.Length - x > ignoreWords[y].Length)
{
if (Convert.ToChar(newString.Substring(x + ignoreWords[y].Length, 1)) < 97)
{
goAhead = false;
y = ignoreWords.Count;
}
}
else
{
goAhead = false;
y = ignoreWords.Count;
}
}
}
}
}
if (goAhead)
{
isBetweenWords = false;
sb.Append(newString[x].ToString().ToUpper());
}
else
{
isBetweenWords = false;
sb.Append(newString[x].ToString());
}
}
else
{
sb.Append(newString[x].ToString());
}
}
else
{
isBetweenWords = true;
sb.Append(newString[x].ToString());
}
}
return sb.ToString();
}
H3Text::TitleCase ( string input ) : String |