Calculate the max count of continuous characters : String Util « Data Types « C# / C Sharp






Calculate the max count of continuous characters

    

//GNU General Public License version 2 (GPLv2)
//http://cbasetest.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SDFL.Helper
{
    public class StrHelper
    {
        /// <summary>
        ///  a function to calculate the max count of continuous characters. 
        ///  For example, input abb and it will return 2, input abbbcc and it will return 3, etc..
        /// </summary>
        /// <hirtory>
        ///     [Dylan] 08/17/2009  Fix bug, if max list exist in the end, can't got it. e.g. "affddccccc"
        ///     [Dylan] 08/17/2009  Fix bug, if only one continuous list, and in the end, DupList is null, e.g. "aff"
        ///     [Dylan] 08/17/2009  Fix bug, if only one char. e.g "a"
        /// </hirtory>
        /// <param name="str"></param>
        /// <returns>max count of continuous characters</returns>
        public static Int32 MaxofDupCharacter(string str)
        {
            int length = str.Length;
            bool isDup = false;
            int iPre = 0; 
            int iLatter = 1;
            List<int> DupList = new List<int>();

            // [Dylan] 08/17/2009  Fix bug, if only one char. e.g "a"
            if (str.Length == 1)
                return 1;

            for (int i = 0; i < length -1; i++)
            {
                if (str[iLatter] == str[iPre])
                {
                    isDup = true;
                    // [Dylan] 08/17/2009  Fix bug, if only one continuous list, and in the end, DupList is null, e.g. "aff"
                    if (iLatter == length -1 && DupList.Count == 0)
                    {
                        DupList.Add(iLatter - iPre + 1);
                    }
                    // [Dylan] 08/17/2009  Fix bug, if max list exist in the end, can't got it. e.g. "affddccccc"
                    // if true, it indicate that end region is still a continuous list.
                    if (iPre< iLatter -1)
                    {
                        DupList.Add(iLatter - iPre+1);
                    }
                }
                else
                {
                    if (isDup)
                    {
                        DupList.Add(iLatter - iPre);                        
                    }
                    isDup = false;
                    iPre = iLatter;                 
                }
                iLatter++;
            }
            

            return int.Parse(DupList.Max().ToString());
        }


    }
}

   
    
    
    
  








Related examples in the same category

1.Generate ToString for given object
2.Remove all Html tag in a string
3.If given string Not Null Or Empty
4.Does string Contain White Space
5.Is given string white space
6.Ensure given string to end with another string
7.Does a string have only one word
8.Is the input string null or empty
9.Get Right Side Of String
10.Count Lines In String
11.Reverse a string
12.Get used chars
13.Count number of chars in a string
14.Count lines in a string with IndexOf
15.Forces the string to word wrap so that each line doesn't exceed the maxLineLength.
16.Determines if a string consists of all valid ASCII values.
17.Gets the right side of the string.
18.Truncates the string from left side
19.Shortcut for string.Format.
20.Gets the string up to the maximum number of characters.
21.Xml Encode String
22.returns the last word of the string, using separators space ,;!?:
23.checks if a string is null or empty or is made only of spaces
24.joins the strings with the speficied separator.
25.Truncates the string.
26.Truncate with text
27.If null returns empty string, else, returns original.
28.Returns the defaultval if the val string is null or empty.
29.Convert the word(s) in the sentence to sentence case.
30.Get the index of a spacer ( space" " or newline )
31.Remove Trailing Path Delimeter
32.Get delimited chars from a string.
33.String Utils
34.If necessary, adds zeros to the beginning of a value so that the total length matches the given precision
35.Add leading and trailing double quotes to the provided string if required.
36.Determines whether the string has white space.
37.Determines whether the string is all white space. Empty string will return false.
38.Ensures the target string ends with the specified string.
39.Convert String To Upper Ignore Null
40.Returns the size of substring that does not contain any trailing spaces
41.Skips any spaces at or after start and returns the index of first non-space character;
42.Provides a collection of convenience methods for processing and creating objects with String value components.
43.Get new line string
44.Convert string to sentence case
45.Cut string and display three dots
46.Remove Html
47.Truncates the specified string.
48.Ensures the carriage returns. See http://cr.yp.to/docs/smtplf.html and 822bis section 2.3.
49.Select Single Inner Text
50.Returns a string with non alphanumeric chars converted to the substitute character.
51.Use HttpUtility.HtmlEncode to encode the input string
52.Shortened the string.
53.Get sub string
54.Joins the key/value pairs into a string
55.Crops a given text