我要做的是在box1中输入随机单词,单击一个按钮,然后在box2中打印所有以“D”开头的单词。因此,如果我输入类似“Carrots Doors Apples Desks Dogs Carpet”的内容并点击“Doors Desks Dogs”按钮将在box2中打印。
string s = box1.Text;
int i = s.IndexOf("D");
string e = s.Substring(i);
box2.Text = (e);
当我使用这个^^
时
它会打印出“Doors Apples Desks Dogs Carpet”,而不仅仅是D'
注意:这些单词是一个例子,我可以在box1中输入任何内容。
有任何帮助吗?
答案 0 :(得分:5)
您可以使用LINQ
简化此操作var allDWords = box1.Text.Split(' ').Where(w => w.StartsWith("D"));
box2.Text = String.Join(" ", allDWords);
答案 1 :(得分:2)
试试这个
box2.Text = String.Join(" ",
box1.Text.Split(' ')
.Where(p => p.StartsWith("D")));
答案 2 :(得分:0)
您可以将D
字与正则表达式匹配,然后迭代结果
试试这个正则表达式
D\w+
答案 3 :(得分: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();
答案 4 :(得分:0)
你可以做的一件事是:
让我们假设,
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);
希望得到这个帮助。