-3

ファンキーな文字列からユーザー名を取得したい作品に取り組んでいます。

例:

  • a> ジェイコブ+デルタ+2012_Bio
  • b> ダイアナ_バイオ_スミス_2011
  • c> Bio_5+10+2012+Steve00

文字列を解析し、特殊文字と Bio、Year、Dates などの特定の一般的な単語を削除して、以下のような結果の文字列を取得します。

  • a> ジェイコブ、デルタは両方を配列で取得したいと考えています。
  • 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 に答える