-3

我正在研究一个我想从时髦的字符串中获取用户名的作品。

例子:

  • a> Jacob+Delta+2012_Bio
  • b> Diana_Bio_smith_2011
  • c> Bio_5+10+2012+Steve00

我想解析字符串,并删除特殊字符和某些常用词,如 Bio、Year 和 Dates,并得到如下所示的结果字符串

  • a> Delta 的 Jacob 想要将两者都放在一个数组中。
  • B>戴安娜·史密斯
  • c>史蒂夫

以下是我正在尝试的事情:

    class TestStringSplit
        {
            static void Main()
            {

 char[] delimiterChars = { ' ', ',', '.', ':', '\t', '_','+','-' };

                string text = "Jacob+Delta+2012_Bio";
                System.Console.WriteLine("Original text: '{0}'", text);

                string[] words = text.Split(delimiterChars);
                System.Console.WriteLine("{0} words in text:", words.Length);

                foreach (string s in words)
                {
                    System.Console.WriteLine(s);
                }
            }
        }
4

1 回答 1

1

你可以这样做:

string[] originals = new[]
    {
        "Jacob+Delta+2012_Bio",
        "Diana_Bio_smith_2011",
        "Bio_5+10+2012+Steve00"
    };

string[] ignoreMe = new[]
    {
        "Bio", "bio", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "_", "+"
    };

IEnumerable<string[]> results = originals.Select(
    o => o.Split(ignoreMe, StringSplitOptions.RemoveEmptyEntries));

请注意,这会一次性完成剥离和拆分,这是一个巧妙的技巧。

于 2012-10-12T19:58:14.310 回答