Find Replace first whole word

 public String ReplaceWholeWord(String s, String word, String bywhat)
        {
            char firstLetter = word[0];
            StringBuilder sb = new StringBuilder();
            bool previousWasLetterOrDigit = false;
            int i = 0;
            s = s + " ";
            while (i < s.Length - word.Length + 1)
            {
                char ch = '~';
                if (!string.IsNullOrEmpty(Convert.ToString(s.Substring(i + word.Length, 1)).Trim()))
                {
                  ch=Convert.ToChar(Convert.ToString(s.Substring(i + word.Length, 1)).Trim());
                }
                bool wordFound = false;
                char c = s[i];
                if (c == firstLetter)
                    if (!previousWasLetterOrDigit)
                        //if ((s.Substring(i, word.Length).Equals(word)) && (Convert.ToString(s.Substring(i + word.Length, 1)).Trim() == string.Empty || Convert.ToString(s.Substring(i + word.Length, 1)).Trim() == "\n"))
                        if ((s.Substring(i, word.Length).Equals(word)) && !Char.IsLetterOrDigit(ch))
                        {
                            wordFound = true;
                            bool wholeWordFound = true;
                            if (s.Length > i + word.Length)
                            {
                                if (Char.IsLetterOrDigit(s[i + word.Length]))
                                    wholeWordFound = false;
                            }

                            if (wholeWordFound)
                                sb.Append(bywhat);
                            else
                                sb.Append(word);

                            i += word.Length;
                            break;
                        }

                if (!wordFound)
                {
                    previousWasLetterOrDigit = Char.IsLetterOrDigit(c);
                    sb.Append(c);
                    i++;
                }
            }

            if (s.Length - i > 0)
                sb.Append(s.Substring(i));

            return sb.ToString();
        }

Comments

Popular posts from this blog

Querying a Data Table Using Select Method and Lambda Expressions in Dot Net

StringToTable

GetPhoneSSNFormat