【问题标题】:Split a string by word using one of any or all delimiters?使用任何或所有分隔符之一按单词拆分字符串?
【发布时间】:2011-08-24 10:08:28
【问题描述】:

我可能刚刚达到了我想太多的地步,但我想知道:有没有办法指定一个应该全部被视为定界符的特殊字符列表,然后使用该列表拆分字符串?示例:

"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;

我想我也可以用 " " 空格替换分隔符...我会在计时器到时立即选择答案!

【问题讨论】:

    标签: c# .net string split delimiter


    【解决方案1】:

    内置的String.Split方法可以将字符集合作为分隔符。

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

    【讨论】:

      【解决方案2】:

      标准split method 为您做到这一点。它需要一个字符数组:

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

      【讨论】:

        【解决方案3】:

        你可以只调用 split 的重载:

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

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

        【讨论】:

          【解决方案4】:
          "battlestar.galactica-season 1".Split(new string[] { ".", "-" }, StringSplitOptions.RemoveEmptyEntries);
          

          【讨论】:

            【解决方案5】:

            这可能不完整,但类似这样。

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

            【讨论】:

              【解决方案6】:

              您是要拆分字符串(制作多个字符串)还是只是想用空格替换特殊字符,就像您的示例可能还建议的那样(制作 1 个更改的字符串)。 对于第一个选项,只需查看其他答案:)

              如果你想替换你可以使用

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

              【讨论】:

              • 由于某种原因,我尝试过的每个版本的替换都不起作用...卡在单词数组中:/
              • 我稍微更改了我的示例以反映重新分配替换结果的需要。但是,如果您正在寻找一个具有技术含义的数组,我的示例可能对您没什么用,您应该使用此处发布的任何其他答案。
              【解决方案7】:

              如需了解更多信息,请参阅以下网址:

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

              【讨论】:

                猜你喜欢
                • 2011-09-11
                • 2021-11-18
                • 1970-01-01
                • 1970-01-01
                • 2015-05-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-11-28
                相关资源
                最近更新 更多