C#如果字符串包含

时间:2012-04-17 10:56:28

标签: c# contains

我在C#工作,我有2个文本框。如果用户在第一个框中输入文本并按下按钮,则将文本副本放入文本框2.我现在已经创建了另一个文本框,并且我希望它显示包含@的所有字符串(如果用户已输入它们)。
例如,
用户输入“你好@joey,我是@Kat和@Max”
按下按钮
“你好@joey,我和@Kat和@Max”出现在文本框2中 和 @joey @Kat @Max 出现在文本框3中。

不知道我最后一部分是怎么做的 任何帮助谢谢! .................................................. ........................................... 好的,所以我决定去尝试学习如何做到这一点,到目前为止我已经有了这个

string s = inputBx.Text;
             int i = s.IndexOf('@');

            string f = s.Substring(i);
            usernameBx.Text = (f);

然而,它可以打印带有@符号的单词之后的所有单词。所以,如果我要进入“你好@joey你用@kat做什么” 它会打印@joey你用@kat做什么而不只是@joey和@kat。

6 个答案:

答案 0 :(得分:3)

我会将Split字符串放入数组中,然后使用string.contains获取包含@符号的项目。

答案 1 :(得分:2)

使用简单的RegEx查找以@开头的单词应该足够了:

string myString = "Hi there @joey, i'm with @Kat and @Max";
MatchCollection myWords = Regex.Matches(myString, @"\B@\w+");
List<string> myNames = new List<string>();

foreach(Match match in myWords) {
    myNames.add(match.Value);
}

答案 2 :(得分:0)

var indexOfRequiredText = this.textBox.Text.IndexOf("@");

if(indexOfRequiredText > -1)
{
    // It contains the text you want
}

答案 3 :(得分:0)

您可以使用正则表达式查找您搜索的单词。

试试这个正则表达式

@\w+

答案 4 :(得分:0)

也许不是最好的灵魂。但是这样的事情:

string str="Hi there @joey, i'm with @Kat and @Max";
var outout= string.Join(" ", str
               .Split(' ')
               .Where (s =>s.StartsWith("@"))
               .Select (s =>s.Replace(',',' ').Trim()
            ));

答案 5 :(得分:0)

正则表达式在这里运作良好:

var names = Regex.Matches ( "Hi there @joey, i'm with @Kat and @Max", @"@\w+" );

foreach ( Match name in names )
    textBox3.Text += name.Value;