1

プログラムで困っています。ファイルを読み取って*.txt、特定の文字で分割する必要がありました。たとえば、ファイルには次のものが含まれています。

rotbrow
yabector
gamerue

したがって、指定された区切り文字を挿入すると、次aのように行が区切られるはずです。

rotbrow
ya
bector
ga
merue

ただし、 a なしで次のように出力します。

rotbrow
ya
bector
ga
merue

これは私が使用しているコードです:

foreach (string line in  File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ArchivoaSeparar.txt"))
{
    string[] parts = line.Split(cadenaTextBox.Text.ToCharArray());

    foreach (string item in parts)
    {
        listBox1.Items.Add(item);
    }
}

指定されたセパレーター(lasの例のa)を表示しない理由がわかりません。入力されたテキストと指定されたセパレーターでこれを行う必要があります。

これで私を助けてくれることを願っています。

4

2 に答える 2

2

セパレーターで文字列を分割すると、そのセパレーターは結果のパーツの一部ではありません。その「a」を見たい場合は、手動で追加する必要があります(最後を除くすべての部分で)。

ところで、それToCharArrayはおそらくあなたが望む効果はありません: 区切り文字として「or」を入力すると、「r」と「o」の両方が独立した区切り文字になるため、それらが一緒かどうかに関係なく分割されます (文字列は分割されます)単一の「o」で、「ro」または「or」で二重に分割します。)

于 2013-11-09T08:21:38.957 に答える
1

分割操作の後、戻り値の一部として区切り記号は取得されません。以下のように、追加のロジックを追加できます。

foreach (string line in File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ArchivoaSeparar.txt"))
            {
                String checkItem = cadenaTextBox.Text.ToString();
                string[] parts = line.Split(checkItem.ToCharArray());

                foreach (string item in parts)
                {
                    listBox1.Items.Add((line.Contains(checkItem) ? item + checkItem : item));
                }
            }
于 2013-11-09T09:19:14.597 に答える