我有以下代码将字符串转换为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/

10-11 15:02