[英]How to check whether a multi line string contains in a text file using c#?
[英]How to check if string contains the text in C# Winforms
誰能幫我用C#Winforms編寫一段代碼,該代碼可以給我一個布爾值,即一段字符串是否包含幾個單詞。
例如,如果我要檢查字符串是否存在串僅測試串 “的數據提供給測試只串”。
我已經編寫了以下代碼,但是無論字符串包含單詞還是否,它都使我成真。
private bool ContainsText(string input)
{
for (int i = 0; i < input.Length; i++)
{
if (((int)input[i] >= 65 && (int)input[i] <= 90) || ((int)input[i] >= 97 && (int)input[i] <= 177))
return true;
}
return false;
}
當我調用以下行時,我總是得到true ,這是不正確的
MessageBox.Show(ContainsText("test only string").ToString());
在代碼方面,如果由於某種原因input
任何字符位於“ A到Z”或“ a到U + 00B1”中,您的ContainsText
代碼將立即返回true
。
但是問題還不止於此:您已經描述了兩個輸入-要檢查的字符串(例如“僅測試字符串”)和要檢查其存在的字符串(例如“提供數據以僅測試字符串”)。 您的方法僅接受一個輸入,而不使用任何其他狀態。 因此它不可能工作。 值得退后一步,嘗試弄清為什么您沒有注意到需要兩個輸入-以及為什么實際上您的測試僅使用“僅測試字符串”,卻沒有提及“提供數據以僅測試字符串”。
您實際上根本不需要任何方法- String
已經具有一個Contains
方法:
if (textToCheck.Contains(textToFind))
{
...
}
假設您要進行序數比較。 如果要以區分文化或不區分大小寫的方式進行檢查,請結合使用IndexOf
和適當的StringComparison
。
一個簡單的string.IndexOf可能帶有枚舉來忽略大小寫:
string myTestString = "Data is provided to Test Only String";
if(myTestString.IndexOf("test only string", StringComparison.CurrentCultureIgnoreCase) >= 0)
Console.WriteLine("Found text");
當然,字符串類也有一個Contains方法,但是它是作為對IndexOf的調用實現的,不可能忽略大小寫。
public bool Contains(string value)
{
return (this.IndexOf(value, StringComparison.Ordinal) >= 0);
}
您可以使用String對象的Contains方法。
var a = "Data is provided to test only string";
var b = "test only string";
if (a.Contains(b))
MessageBox.Show("yes");
使用IndexOf
http://www.dotnetperls.com/indexof
使用示例
string str = "string to test";
bool result = str.IndexOf("The hosted network started.") != -1;
MessageBox.Show(result.ToString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.