[英]check if there is any of the chars inside the textbox
我在全局,按鈕和文本框上有一個chararray,如何檢查textBox1.Text中的單詞是否包含chararray中的字母?
char[] letters = { 'a', 'e' };
private void button1_Click(object sender, EventArgs e)
{
bool containsAnyLetter = textBox1.Text.IndexOfAny(letters) >= 0;
if (containsAnyLetter == true)
{
MessageBox.Show("your word contains a or e");
}
}
你可以這樣做,看看字符串是否包含任何字母:
private void button1_Click(object sender, EventArgs e)
{
bool containsAnyLetter = letters.Any(c => textBox1.Text.Contains(c));
}
或者更簡單:
private void button1_Click(object sender, EventArgs e)
{
bool containsAnyLetter = textBox1.Text.IndexOfAny(letters) >= 0;
}
您可以使用String.IndexOfAny(char[] anyOf)
方法( MSDN ):
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.IndexOfAny(letters) >= 0)
{
MessageBox.Show("Your word contains a or e.");
}
}
另外,請記住, IndexOfAny區分大小寫 ( a
與A
不匹配)。
如果要創建不區分大小寫的方法,可以創建擴展方法:
public static class StringIndexExtensions
{
public static bool CaseSensitiveContainsAny(this char[] matchChars, string textToCheck)
{
return matchChars.Any(c => textToCheck.IndexOf(
c.ToString(CultureInfo.InvariantCulture),
StringComparison.OrdinalIgnoreCase) >= 0);
}
}
然后你可以做以下事情:
private void button1_Click(object sender, EventArgs e)
{
if (letters.CaseSensitiveContainsAny(textBox1.Text))
{
MessageBox.Show("Your word contains a or e.");
}
}
你可以使用Regex
private void button1_Click(object sender, EventArgs e)
{
if (Regex.IsMatch(textBox1.Text, @"(a|e)"))
{
MessageBox.Show("your word contains a or e");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.