patterncsharpCritical
Efficient way to remove ALL whitespace from String?
Viewed 0 times
efficientwhitespacefromremovewaystringall
Problem
I'm calling a REST API and am receiving an XML response back. It returns a list of a workspace names, and I'm writing a quick
I know it's case-sensitive, and I'm relying on that. I just need a way to remove all whitespace in a string efficiently. I know RegEx and LINQ can do it, but I'm open to other ideas. I am mostly just concerned about speed.
IsExistingWorkspace() method. Since all workspaces consist of contiguous characters with no whitespace, I'm assuming the easiest way to find out if a particular workspace is in the list is to remove all whitespace (including newlines) and doing this (XML is the string received from the web request):XML.Contains("" + workspaceName + "");I know it's case-sensitive, and I'm relying on that. I just need a way to remove all whitespace in a string efficiently. I know RegEx and LINQ can do it, but I'm open to other ideas. I am mostly just concerned about speed.
Solution
This is fastest way I know of, even though you said you didn't want to use regular expressions:
Crediting @hypehuman in the comments, if you plan to do this more than once, create and store a Regex instance. This will save the overhead of constructing it every time, which is more expensive than you might think.
Regex.Replace(XML, @"\s+", "");Crediting @hypehuman in the comments, if you plan to do this more than once, create and store a Regex instance. This will save the overhead of constructing it every time, which is more expensive than you might think.
private static readonly Regex sWhitespace = new Regex(@"\s+");
public static string ReplaceWhitespace(string input, string replacement)
{
return sWhitespace.Replace(input, replacement);
}Code Snippets
Regex.Replace(XML, @"\s+", "");private static readonly Regex sWhitespace = new Regex(@"\s+");
public static string ReplaceWhitespace(string input, string replacement)
{
return sWhitespace.Replace(input, replacement);
}Context
Stack Overflow Q#6219454, score: 857
Revisions (0)
No revisions yet.