簡體   English   中英

如何按字符拆分中文字符串?

[英]How to split a Chinese string by character?

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

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();

...確實成功地將中文句子寫入文件,所以我知道這對我寫入文件的方式應該不會有問題。

我認為問題可能是(字符+'\\ n'); 被解釋為整數。 也許嘗試在該行中添加一個強制轉換或者像這樣添加兩個單獨的附加:

s.Append(character);
s.Append('\n');
        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();
        }

對我來說很好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM