开发者

Split a string by word using one of any or all delimiters?

I may have just hit the point where i;m overthinking it, but I'm wondering: is there a way to designate a list of special characters 开发者_开发百科that should all be considered delimiters, then splitting a string using that list? Example:

"battlestar.galactica-season 1"

should be returned as

battlestar galactica season 1

i'm thinking regex but i'm kinda flustered at the moment, been staring at it for too long.

EDIT: Thanks guys for confirming my suspicion that i was overthinking it lol: here is what i ended up with:

//remove the delimiter
            string[] tempString = fileTitle.Split(@"\/.-<>".ToCharArray());
            fileTitle = "";
            foreach (string part in tempString)
            {
                fileTitle += part + " ";
            }

            return fileTitle;

I suppose i could just replace delimiters with " " spaces as well... i will select an answer as soon as the timer is up!


The built-in String.Split method can take a collection of characters as delimiters.

string s = "battlestar.galactica-season 1";
string[] words = s.split('.', '-');


The standard split method does that for you. It takes an array of characters:

public string[] Split(
    params char[] separator
)


You can just call an overload of split:

myString.Split(new char[] { '.', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);

The char array is a list of delimiters to split on.


"battlestar.galactica-season 1".Split(new string[] { ".", "-" }, StringSplitOptions.RemoveEmptyEntries);


This may not be complete but something like this.

string value = "battlestar.galactica-season 1"

char[] delimiters = new char[] { '\r', '\n', '.', '-' };
    string[] parts = value.Split(delimiters,
                     StringSplitOptions.RemoveEmptyEntries);
    for (int i = 0; i < parts.Length; i++)
    {
        Console.WriteLine(parts[i]);
    }


Are you trying to split the string (make multiple strings) or do you just want to replace the special characters with a space as your example might also suggest (make 1 altered string). For the first option just see the other answers :)

If you want to replace you could use

string title = "battlestar.galactica-season 1".Replace('.', ' ').Replace('-', ' ');


For more information split with easy examples you may see following Url:

This also include split on words (multiple chars). C# Split Function explained

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜