پاسخ ها (1)
3
Farasat
برای به دست آوردن کلمات یک رشته راه های گوناگونی وجود دارد که هر کدام مزایا و معایبی دارند.
Loop
Regex
دقت نمایید در تمامی این راه حل ها کلمات بر اساس فضای خالی بین آنها جدا شده اند و فضاهای خالی نادیده گرفته شده اند.
برخی از این روش ها به صورت زیر است.
()string.split
ساده ترین و سریعترین راه ممکن برای این کار هست.
sentence.Split(new Char[]{' '},StringSplitOptions.RemoveEmptyEntries);
با استفاده از یک حلقه مانند for یا foreach می توانید اینکار را انجام دهید. البته این روش مستلزم زمان بیشتری برای تولید و تست می باشد.
این کد تست شده است ولی ممکن است در برخی شرایط جواب درستی ندهد و فقط مثالی برای مقایسه روش های موجود می باشد.
List<string> array = new List<string>();
for (int i = 0; i < sentence.Length; ++i)
{
var current = sentence[i];
var temp = "";
if (current != ' ')
{
for (int j = i; j < sentence.Length; ++j)
{
if (sentence[j] == ' ')
{
array.Add(temp);
i = j - 1;
temp = "";
break;
}
temp += sentence[j];
}
}
else if (current == ' ')
{
for (int j = i; j < sentence.Length; ++j)
{
if (sentence[j] != ' ')
{
i = j - 1;
temp = "";
break;
}
temp += sentence[j];
}
}
if (temp != "")
{
temp = "";
break;
}
}
Regex
با استفاده از regular expression می توانید کلمات را به صورت مجزا داشته باشید
string[] words = Regex.Split(sentence, @"\s+");
پاسخ به سوال