C# 使用Indexof检查字符串是否包含字符
我要做的是在框1中键入随机单词,单击一个按钮,然后在框2中打印所有以D开头的单词。所以,如果我要输入胡萝卜、门、苹果、办公桌、狗、地毯之类的东西,然后单击框2中的“门、办公桌、狗”按钮C# 使用Indexof检查字符串是否包含字符,c#,printing,contains,indexof,C#,Printing,Contains,Indexof,我要做的是在框1中键入随机单词,单击一个按钮,然后在框2中打印所有以D开头的单词。所以,如果我要输入胡萝卜、门、苹果、办公桌、狗、地毯之类的东西,然后单击框2中的“门、办公桌、狗”按钮 string s = box1.Text; int i = s.IndexOf("D"); string e = s.Substring(i); box2.Text = (e); 当我用这个的时候^^ 它将打印出门、苹果、桌子、狗、地毯,而不仅仅是
string s = box1.Text;
int i = s.IndexOf("D");
string e = s.Substring(i);
box2.Text = (e);
当我用这个的时候^^
它将打印出门、苹果、桌子、狗、地毯,而不仅仅是D。
注意:这些词就是一个例子,我可以在方框1中键入任何内容
有什么帮助吗 您可以通过使用LINQ简化此过程
var allDWords = box1.Text.Split(' ').Where(w => w.StartsWith("D"));
box2.Text = String.Join(" ", allDWords);
您可以将D字与正则表达式匹配,并对结果进行迭代
试试这个正则表达式
D\w+
首先,你需要将文本拆分成几个单词,然后检查每个单词是否以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();
试试这个
box2.Text = String.Join(" ",
box1.Text.Split(' ')
.Where(p => p.StartsWith("D")));
你可以做的一件事是: 让我们假设
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);
希望这有帮助。不,这不是家庭作业,这是我试图学习的。当这仍然是一个学术项目时,它的目的是教你,而不是解决一个问题,从我们的角度来看,这几乎是一样的。好吧,关于更多的空间呢?这是给迪斯首府的吗?是给D首府的。蒂姆·施梅尔特的帖子解决了这一问题——为什么?是托卡瑞而不是“完美伴侣”。有没有可能解释一下它是如何工作的?@user1300788:它取初始字符串并将其拆分为单词空格是分隔符;从这个列表中,它只需要以D开头的单词,最后使用空格作为分隔符将列表项连接到一个字符串中。这正好符合我不再要求的内容,也是我写得更慢的内容+1。不处理其他空格分隔符或小写字母,但这不是要求的。非常感谢。我同意,非常简单,没有不必要的+1