> 문자열에서 단어 횟수를 세는 방법(LINQ)
How to count occurrences of a word in a string (LINQ)
public class Example
{
public static void Main()
{
Console.Write("<< 문자열에서 특정 단어 횟수세는 방법 >> \n");
string text = @"Prism is specifically formatted for the analyses you want to run, " +
@"including analysis of quantitative and categorical data." +
@"This makes it easier to enter data correctly," +
@"choose suitable analyses, and create stunning graphs.";
string searchStr = "data";
// Split를 이용하여 스트링을 배열로 변환.
string[] source = text.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);
// 단어와 매칭되는 단어를 찿는 쿼리.
var matchQuery = from word in source
where word.Equals(searchStr, StringComparison.InvariantCultureIgnoreCase)
select word;
// 매치되는 Count 세기.
int wordCount = matchQuery.Count();
Console.WriteLine("\"{1}\" 이 {0} 회 검출됨", wordCount, searchStr);
Console.WriteLine(System.Environment.NewLine);
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
> 문자열을 Split를 이용하여 세분화한 단어의 배열로 변환
string[] source = text.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' },
StringSplitOptions.RemoveEmptyEntries);
> 단어의 배열을 Linq를 이용하여 찿으려는 단어를 추출
var matchQuery = from word in source
where word.Equals(searchStr, StringComparison.InvariantCultureIgnoreCase)
select word;