How do you trim the white space from between two words in a txtbox.

I am trying to trim the white space form between two words in a txt box.  The reason for this is i want to run a query to check the db for a match.  What happens now is lets say i type mike Jones in the textbox and run my query it find it.  but if theres any more than one space between mike and Jones my query returns as no match.

Thanks for any help
bmanmike39Asked:
Who is Participating?
 
anarki_jimbelConnect With a Mentor Commented:
mwvisa1
Really I'm just proposing an alternative. But I am not sure your code will work for a string (text), we are not dealing with a DB here.

trunghieubkit:
you code will work but it's highly inefficient for a big text (just in case).
Better change to (see the snippet):
string Elimate(string astrOriginal)
{
    string lstrResult = "";
    string[] lstrSplit = { " ", "\t" }; //Both Space and Tab
    string[] lstrSubs = astrOriginal.Split(lstrSplit, StringSplitOptions.RemoveEmptyEntries);
 
    lstrResult = string.Join(" ", lstrSubs);
 
    return lstrResult;
}

Open in new window

0
 
Kevin CrossChief Technology OfficerCommented:
In your case, you may be able to do something like this:
{http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx}
textbox1.Replace(" ", "%");

Open in new window

0
 
Kevin CrossChief Technology OfficerCommented:
% == wildcard for MS SQL Server

If using a different database, use the wildcard you would normally use in a LIKE statement, e.g. "*".
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
anarki_jimbelCommented:
I can give you some generic function to remove extra white spaces from text. Probably it bwtter works for big text but also cam be used in your case. It handles spaces and tabs, i.e all white space characters. BTW performance for big text is better than for regular expressions.
See the snippet:
        private string TrimInnerSpaces(string input)
        {
            char[] inputArray = input.ToCharArray();
            StringBuilder sb = new StringBuilder(inputArray.Length);
            int whiteSpaceCounter = 0;
            char currentChar;
            for (int i = 0; i < inputArray.Length; i++)
            {
                currentChar = inputArray[i];
                if (char.IsWhiteSpace(currentChar))
                {
                    if (whiteSpaceCounter > 0)
                    {
                        // do nothing;
                    }
                    else
                    {
                        whiteSpaceCounter += 1;
                        sb.Append(' ');// append one space
                    }
                }
                else
                {
                   whiteSpaceCounter = 0;
                   sb.Append(inputArray[i]);
                }
            }
 
            return sb.ToString();
        }

Open in new window

0
 
Kevin CrossChief Technology OfficerCommented:
anarki_jimbel, are you indicating my String.Replace won't work?  Or are you just offering an alternative?
0
 
trunghieubkitCommented:
Using the snippet below,
It's yours!

It'll work well with either Tab or Space between the words

Example:
"               Hieu                           Dung          "  =>  "Hieu Dung"
Or
"               Hieu                           Dung         Hien "  =>  "Hieu Dung Hien"

string Elimate(string astrOriginal)
{
    string lstrResult = "";
    string[] lstrSplit = { " ", "\t" }; //Both Space and Tab
    string[] lstrSubs = astrOriginal.Split(lstrSplit, StringSplitOptions.RemoveEmptyEntries);
 
    foreach (string lstrSub in lstrSubs)
    {
        lstrResult += " " + lstrSub;
    }
 
    return lstrResult.Trim();
}

Open in new window

0
 
Kevin CrossConnect With a Mentor Chief Technology OfficerCommented:
@anarki,

I was just curious.

As far as DB, see this from question:
>> The reason for this is i want to run a query to check the db for a match.

My solution was geared around changing the spaces in the text from textbox to "%" so that when passed into the SQL query it will look something like this:

columnname LIKE 'John%Smith'

Thanks for asking as that may not have been clear to the asker.
0
 
anarki_jimbelCommented:
Agree, probably it's the best solution for the case.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.