-2

string myStr = "part1#part2";

この単純な文字列の Split() メソッドを分割するには、引数を持つ配列が渡されることを期待します。本当に?myStr.Split('#');必要がないのに、なぜchar配列を宣言することを期待しているのかを指定できないのはなぜですか。誰でも私の論理や私の誤解を説明できますか? ありがとう

4

2 に答える 2

8

あなたはできる。String.Splitは引数を取り、param可変数の引数を許可します。

以下は期待どおりに動作します

var text = "a,a,a";
var parts = text.Split(',');
于 2013-03-30T01:09:17.357 に答える
0

別の方法、


ブラウン フォックスの詳細

string data = "THE1QUICK1BROWN1FOX";

return data.Split(new string[] { "1" }, StringSplitOptions.None);

http://stackoverflow.comからさらにいくつか

var str = "google.com 420 AM 3 May 12";
var domain = str.Split(' ')[0];           // google.com
var tld = domain.Substring(domain.IndexOf('.')) // .com

参照: http://msdn.microsoft.com/en-us/library/b873y76a.aspx

遅れましたが、

シンプルな家庭教師


Split() メソッドの最も単純な構文は、文字配列を唯一のパラメーターとして受け入れ、文字列の分割が発生する場所を決定するために使用する文字をリストします。指定された区切り文字の間の値に対応する配列の各要素を持つ、文字列の配列を返します。以下の行は、リストの最初の分割操作からのものです。

    string[] year = commaDelimited.Split(new char[] {','});

同様に、Join() メソッドを使用して、配列の要素を区切り文字列に結合できます。Join() メソッドの最も単純なオーバーロードは、2 つのパラメーターを受け入れます。各配列要素を区切る文字列と、結合する要素の配列です。Join() メソッドは静的であり、コマンドを実装するには、文字列インスタンスではなく文字列型識別子が必要です。リストからの次の行は、コロンで区切られたすべての年の要素を順番に含む文字列を作成します。

    string colonDelimeted = String.Join(":", year);

オーバーロード


これらはこれらのメソッドの単純な実装であり、おそらく最も使用される可能性が高いものです。次に、いくつかのオーバーロードを見て、より特化した動作を実装する方法を見てみましょう。

Split() メソッドには、実装する分離の数を指定する 2 番目のパラメーターを持つオーバーロードがあります。次の行は、commaDelimited 文字列を 3 つの配列要素に分割します。

    string[] quarter = commaDelimited.Split(new Char[] {','}, 3);

一見すると、3 つの配列要素は Jan、Feb、および Mar である可能性があると考えるかもしれませんが、そうではありません。最初の配列要素は Jan、2 番目は Feb、最後は残りの文字列です。自分の目で確かめるために、各配列要素がスペースで区切られた出力文字列を次に示します。

Jan Feb Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec

Join() メソッドには、配列のサブセットを抽出できるオーバーロードがあります。最初の 2 つのパラメーターは前述と同じです。3 番目と 4 番目のパラメーターは、読み取りを開始する配列内の位置と読み取る要素の数をそれぞれ指定します。リストの次の行は、年の配列の 6 番目から 8 番目の要素の間にスラッシュを含む文字列を作成します。

    string thirdQuarter = String.Join("/", year, 6, 3);
于 2013-03-30T01:48:23.263 に答える