使用任何或所有分隔符之一逐字拆分字符串?

时间:2011-05-12 19:41:05

标签: c# .net string split delimiter

我可能刚刚达到了这样的地步:我过度思考它,但我想知道:有没有办法指定一个特殊字符列表,应该都被认为是分隔符,然后使用该列表分割字符串?例如:

"battlestar.galactica-season 1"

应该以

的形式返回
battlestar galactica season 1

我正在考虑正则表达式,但此刻我有点心慌,长时间盯着它。

编辑: 谢谢你们确认我怀疑我是在过度思考大声笑:这就是我最终的结果:

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

            return fileTitle;

我想我可以用“”空格替换分隔符......我会在计时器启动后立即选择答案!

7 个答案:

答案 0 :(得分:7)

内置String.Split方法可以将一组字符作为分隔符。

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

答案 1 :(得分:2)

标准split method为您做到了这一点。它需要一系列字符:

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

答案 2 :(得分:2)

你可以调用split的重载:

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

char数组是要拆分的分隔符列表。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

这可能不完整,但是像这样。

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]);
    }

答案 5 :(得分:0)

您是在尝试拆分字符串(创建多个字符串)还是只想用空格替换特殊字符,例如您也可以建议(制作1个更改的字符串)。 对于第一个选项,只需看到其他答案:)

如果您想替换,可以使用

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

答案 6 :(得分:0)

有关使用简单示例拆分的更多信息,您可能会看到以下网址:

这还包括分词(多个字符)。 C# Split Function explained