単語の辞書に格納するために空白で分割したい文字列があります(十分に単純です)。ただし、単語のインデックスと長さもそれぞれ必要です。
これまでのところ、私は単語の辞書とそれらが見つかった順序を持っています....
private Dictionary<int,String> makeDictionary(String ASCII)
{
string[] t = ASCII.Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
Dictionary<int, string> aDictionary = new Dictionary<int, string>();
for (int i = 0; i < t.Length; i++)
{
t[i] = stripSymbolsFromString(t[i]);
if (!aDictionary.ContainsValue(t[i]) && t[i] != "")
{
aDictionary.Add(i, t[i]);
}
}
return aDictionary;
}
インデックスを保持しながら .Split() を使用する方法を知っている人はいますか、それとも別の連結手法を使用する必要がありますか? 誰かが以下に投稿したように、正規表現を使用すると一致のインデックスが得られます。
編集:長さは必要ありません。誰かが指摘したように、文字列から取得できます。単語の開始インデックスだけが必要です。
EDIT2:重複する単語は無視します。
EDIT3:これは私が使用する文字列の例です:
Lorem Ipsum は、印刷および植字業界の単なるダミー テキストです。Lorem Ipsum は、1500 年代に未知の印刷業者がタイプのギャレーを取り、それをスクランブルしてタイプ見本帳を作成して以来、業界の標準的なダミー テキストでした。それは 5 世紀だけでなく、電子植字への飛躍にも耐え、本質的に変わっていません。1960 年代に Lorem Ipsum のパッセージを含む Letraset シートがリリースされ、最近では Lorem Ipsum のバージョンを含む Aldus PageMaker のようなデスクトップ パブリッシング ソフトウェアで普及しました。
したがって、最初のいくつかの要素は次のようになります
[0]=>ローラム、
[6]=>イプサム、
[12]=>は
ここで、数値 0,6,12 は文字列内の単語の元のインデックスです