3

我有一个主要包含中文字符的字符串,如下所示:

string sentence = "我想找到从夏洛特飞往拉斯维加斯,让站在圣路易斯";

如何按字符拆分句子?最终,我希望能够获取我的字符串,并将其写入一个文件,每个字符都在自己的行上,如下所示:

我
想
找
到
从
夏
洛
特
飞
往
拉
斯
维
加
斯
,
让
站
在
圣
路
易
斯

我试过这样做:

StringBuilder s = new StringBuilder();
foreach (char character in sentence.ToCharArray())
{
    s.Append(character + '\n');
}
string output = s.ToString();

StreamWriter writer = new StreamWriter("test.txt", false, Encoding.UTF8);
writer.Write(output);
writer.Close();

...但无论出于何种原因,它不是写汉字,而是写

   29252242105020184228092794129315391442445825299260413251021162260416530235763314592232222317363452614126041

...改为文件。然而,做

StreamWriter writer = new StreamWriter("text.txt", false, Encoding.UTF8);
writer.Write(sentence);
writer.Close();

...确实成功地将中文句子写入文件,所以我知道我写入文件的方式应该不是问题。

4

2 回答 2

6

我认为问题可能是 (character + '\n'); 被解释为整数。也许尝试向该行添加强制转换或像这样进行两个单独的附加:

s.Append(character);
s.Append('\n');
于 2012-07-05T22:39:50.220 回答
1
        var sentence = "我想找到从夏洛特飞往拉斯维加斯,让站在圣路易斯";
        var chars = sentence.ToCharArray();

        using (var writer = new StreamWriter("test.txt", false, Encoding.UTF8))
        {
            foreach (var c in chars)
            {
                writer.WriteLine(c);
            }

            writer.Close();
        }

对我来说很好

于 2012-07-05T22:59:08.180 回答