0

私がやろうとしているのは、ボックス1にランダムな単語を入力し、ボタンをクリックして、ボックス2の「D」で始まるすべての単語を印刷することです。したがって、「Carrots Doors Apples Desks Dogs Carpet」のように入力して、「DoorsDesksDogs」ボタンをクリックするとbox2に印刷されます。

    string s = box1.Text;                
    int i = s.IndexOf("D");
    string e = s.Substring(i);
    box2.Text = (e);

これを使うと^^
Dだけでなく「DoorsApplesDesksDogsCarpet」と印刷されます。
注:これらの単語は一例です。box1に何でも入力できます。

何か助けはありますか?

4

5 に答える 5

5

LINQを使用してこれを単純化できます

var allDWords = box1.Text.Split(' ').Where(w => w.StartsWith("D"));
box2.Text = String.Join(" ", allDWords);
于 2012-04-17T14:09:13.620 に答える
2

これを試して

box2.Text = String.Join(" ", 
                box1.Text.Split(' ')
                         .Where(p => p.StartsWith("D")));
于 2012-04-17T14:10:32.963 に答える
0

単語を正規表現と照合Dして、結果を繰り返すことができます

この正規表現を試してください

D\w+
于 2012-04-17T14:09:32.700 に答える
0

まず、テキストを単語に分割してから、各単語が。で始まるかどうかを確認する必要がありますD。最初の文字を探すときは、直接確認する方が簡単です。

string s = box1.Text;  
StringBuilder builder = new StringBuilder();
foreach (var cur in s.Split(new char[] { ' ' })) {
  if (cur.Length > 0 && cur[0] == 'D') {
    builder.Append(cur);
    builder.Append(' ');
  }
}
box2.Text = builder.ToString();
于 2012-04-17T14:10:17.727 に答える
0

あなたができることの1つは次のとおりです。

仮定しましょう、

 string str = "Dog Cat Man etc";
            string[] words = str.Split(' ');

            List<string> wordStartWithD = new List<string>();

            foreach (string strTemp in words)
                if (strTemp.StartsWith("D"))
                    wordStartWithD.Add(strTemp);

この助けを願っています。

于 2012-04-17T14:13:26.283 に答える