2013-03-16 3 views
0

문자열 조각에 몇 단어가 포함되어 있는지 여부를 알려주는 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; 
    } 

, 난 항상

MessageBox.Show(ContainsText("test only string").ToString()); 
+0

알고있는 String.Contains 메서드가 있습니다. –

답변

1

String 객체의 Contains 메서드를 사용할 수 있습니다.

var a = "Data is provided to test only string"; 
var b = "test only string"; 

if (a.Contains(b)) 
    MessageBox.Show("yes"); 
0

사용 같이 IndexOf 사용의

http://www.dotnetperls.com/indexof

예를 정확하지 사실을 얻을 ..

string str = "string to test"; 
bool result = str.IndexOf("The hosted network started.") != -1; 

MessageBox.Show(result.ToString()); 
1

간단한 string.IndexOf 아마 열거와 케이스를 무시하기 :

문자열 클래스는 또한이 방법을 포함하고 있지만이 사건을 무시하는 가능성이없는, 같이 IndexOf에 대한 호출로 구현됩니다 물론
string myTestString = "Data is provided to Test Only String"; 
if(myTestString.IndexOf("test only string", StringComparison.CurrentCultureIgnoreCase) >= 0) 
    Console.WriteLine("Found text"); 

.

public bool Contains(string value) 
{ 
    return (this.IndexOf(value, StringComparison.Ordinal) >= 0); 
} 
2

코드 - 현명한 당신의 ContainsText 코드 input의 모든 문자 "A에서 Z"또는 "는 U + 00B1에"몇 가지 이유 중 하나입니다 true경우 즉시 돌아갑니다.

하지만 문제는 그 이상입니다. 두 개의 입력 - 확인할 문자열입니다. "test only string"과 그 존재를 확인하기위한 문자열. "데이터는 문자열 만 테스트하도록 제공됩니다." 귀하의 방법은 하나의 입력 만 허용하며 다른 어떤 상태도 사용하지 않습니다. 따라서 일 수 없습니다. 한 걸음 물러서서 왜 두 개의 입력이 필요하다는 것을 눈치 채지 못했고, 실제로 테스트에는 "테스트 전용 문자열"만 사용되었고 "데이터는 문자열 만 테스트하도록 제공되었습니다"는 언급이 없었습니다. 당신이 서수 비교를 원하는 가정 것

if (textToCheck.Contains(textToFind)) 
{ 
    ... 
} 

: -

당신은 정말 전혀하지만 방법이 필요하지 않습니다 String 이미 Contains 방법이있다. 문화적으로 민감하거나 대소 문자를 구분하지 않으려면 IndexOf을 적절하게 사용하고 StringComparison을 사용하십시오.

관련 문제