簡體   English   中英

使用Indexof檢查字符串是否包含字符

[英]Using Indexof to check if string contains a character

我想做的是在box1中輸入隨機單詞,單擊一個按鈕,然后在box2中打印所有以“ D”開頭的單詞。 因此,如果我鍵入“胡蘿卜門,蘋果書桌狗地毯”之類的內容,然后單擊“ 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中鍵入任何內容。

有什么幫助嗎?

您可以使用LINQ簡化此操作

var allDWords = box1.Text.Split(' ').Where(w => w.StartsWith("D"));
box2.Text = String.Join(" ", allDWords);

嘗試這個

box2.Text = String.Join(" ", 
                box1.Text.Split(' ')
                         .Where(p => p.StartsWith("D")));

您可以將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();

您可以做的一件事是:

假設,

 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);

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM