以下にリストされているような文字列があります。
文字列サンプル = " class0 .calss1 .class2 .class3.class4 .class5 class6 .class7";
このサンプル文字列から WORDS のリストを作成する必要があります。
WORD は、ピリオドで始まり、次の文字列で終わる文字列です。
- スペースまたは
- 別の期間または
- 文字列の終わり
注: ここで重要な点は、分割は 2 つの基準 (ピリオドと空白スペース) に基づいているということです。
次のプログラムがあります。それは正常に動作します。ただし、 or を使用したよりシンプル/効率的/簡潔なアプローチはありますLINQ
かRegular Expressions
?
コード
List<string> wordsCollection = new List<string>();
string sample = " class0 .calss1 .class2 .class3.class4 .class5 class6 .class7";
string word = null;
int stringLength = sample.Length;
int currentCount = 0;
if (stringLength > 0)
{
foreach (Char c in sample)
{
currentCount++;
if (String.IsNullOrEmpty(word))
{
if (c == '.')
{
word = Convert.ToString(c);
}
}
else
{
if (c == ' ')
{
//End Criteria Reached
word = word + Convert.ToString(c);
wordsCollection.Add(word);
word = String.Empty;
}
else if (c == '.')
{
//End Criteria Reached
wordsCollection.Add(word);
word = Convert.ToString(c);
}
else
{
word = word + Convert.ToString(c);
if (stringLength == currentCount)
{
wordsCollection.Add(word);
}
}
}
}
}
結果
foreach (string wordItem in wordsCollection)
{
Console.WriteLine(wordItem);
}
参照: