我有以下代码将字符串转换为TitleCase。
我想为此创建一个例外,以便如果输入的字符串按顺序查找确切的字符,它将忽略它并继续转换其余字符串。例如。如果字符串的一部分包含:ABC我通常想忽略此规则,然后继续在TitleCase中转换字符串的其余部分:
public string ConvertToTitleCase(string input)
{
char[] chars = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower()).ToCharArray();
for (int i = 0; i + 1 < chars.Length; i++)
{
if ((chars[i].Equals('\'')) ||
(chars[i].Equals('-')))
{
chars[i + 1] = Char.ToUpper(chars[i + 1]);
}
}
return new string(chars);
}
有任何想法吗?
最佳答案
这就是你所需要的
private string ConvertToTitleCase(string input, string ignore) {
var lcSB = new StringBuilder();
var lcStart = 0;
while (lcStart < input.Length) {
var lcNext = input.IndexOf(ignore, lcStart);
if (lcNext < 0)
lcNext = input.Length;
lcSB.Append(input.Substring(lcStart, lcNext - lcStart).ToUpper());
if (lcNext < input.Length)
lcSB.Append(ignore);
lcStart = lcNext + ignore.Length;
}
return lcSB.ToString();
}
关于c# - 向TitleCase方法C#添加异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9225265/