C# search string forward and backwards

C#, Programming No Comments »

I ran into a requirement working on a piece of code that needed me to search a string from beginning to end and then from end to the beginning.  This is the solution that I came up with consists of three methods.  One method to simulate the InStr function from the old vb days, one to reverse a string and another to do the actual matching:

	public bool ForwardBackwardMatch(string stringSearched,
		string searchCriteria)
	{
		bool matchFound = false;
		if (stringSearched.Trim() != string.Empty)
		{
			// search criteria in string?
			if (InStr(stringSearched, searchCriteria))
			{
				matchFound = true;
			}

			// reverse our string
			string stringSearchedReverse =
					StringReverse(stringSearched);
			// recheck against criteria
			if (InStr(stringSearchedReverse, searchCriteria))
			{
				matchFound = true;
			}
		}
		return matchFound;
	}

	public bool InStr(string stringSearched, string searchCriteria)
	{
		bool returnVal;
		if (stringSearched.IndexOf(searchCriteria.Trim()) == -1)
		{
			returnVal = false;
		}
		else
		{
			returnVal = true;
		}
		return returnVal;
	}

	public string StringReverse(string s)
	{
		char[] charArray = s.ToCharArray();
		for (int i = 0, j = charArray.Length - 1;
			i < j; i++, j--)
		{
			charArray[j] = s[i];
			charArray[i] = s[j];
		}
		return new String(charArray);
	}

Removing Odd Characters from Strings.

Programming No Comments »

Okay, so I ran into an issue while working on a project at work where an internal web service was returning a large string of text as driving directions that apparently was copied and pasted out of a word document.  The problem was that unicode characters (tiny rectangle representing a list item bullet for example) were strung all throughout the text.  Just imagine a blurb of text that is about 2000 characters but there isn't a single bit of formatting in it.  So I set out to find some code since I knew that someone had to have had this problem at some point or another.  I ran into the following, which ended up being exactly what I was looking for:

The blog post entitled "A .NET Unicode Puzzle (Revised)" had the answers I sought.  Below is an example of the method that I ended up using in my solution.

public static string RemoveUnicode(string s)
{
    try
    {
	string normalized = s.Normalize(NormalizationForm.FormKD);
	Encoding ascii = Encoding.GetEncoding(
	      "us-ascii",
	      new EncoderReplacementFallback(string.Empty),
	      new DecoderReplacementFallback(string.Empty));
	byte[] encodedBytes = new byte[ascii.GetByteCount(normalized)];
	int numberOfEncodedBytes = ascii.GetBytes(normalized, 0,
        normalized.Length, encodedBytes, 0);
	string newString = ascii.GetString(encodedBytes);
	return newString;
    }
    catch
    {
	return s;
    }
}
Design by j david macor.com.Original WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in