Example #1
0
        public static string NormalizeWhitespace(this string s)
        {
            if (s == null || s.Length == 0)
            {
                return(s);
            }

            var cs = new CharacterStream(new TextStream(s));
            var sb = new StringBuilder();

            while (!cs.IsEndOfStream())
            {
                var current = cs.Position;
                cs.SkipWhitespace();
                if (cs.Position - current > 0)
                {
                    sb.Append(' ');
                }

                while (!cs.IsEndOfStream() && !cs.IsWhiteSpace())
                {
                    sb.Append(cs.CurrentChar);
                    cs.MoveToNextChar();
                }
            }
            return(sb.ToString().Trim());
        }