假设我有一个像"সাজানো"的bangla字符串。我需要把它分成"সা" "জা" "নো&#34 ;.我尝试过ToCharArray()方法但是它将以下字符串拆分为'স','া','জ','া&#39 ;,'ন','ো'。
所以问题是我想把一个字符串拆分成另一个字符串数组,其中包含组合/从属字符。喜欢"সা"应该与"সাজানো"分开,而不是像'স'和'া'。
答案 0 :(得分:0)
试试这个:
string[] SplitString(string S)
{
return S.Split('া');
}
private void button1_Click(object sender, EventArgs e)
{
string B = "সাজানো";
var vv = SplitString(B);
foreach (var item in vv)
{
MessageBox.Show(item.ToString());
}
}
答案 1 :(得分:0)
这也有效:
string text = "সাজানো";
var textCharArray = text.ToCharArray();
var tokens = new List<string>();
for (int i = 0; i < textCharArray.Length; i++)
{
char c = textCharArray[i];
if (char.GetUnicodeCategory(c) == System.Globalization.UnicodeCategory.SpacingCombiningMark)
{
string token = $"{tokens.Last()}{c}";
tokens.RemoveAt(tokens.Count() - 1);
tokens.Add(token);
}
else
{
tokens.Add($"{c}");
}
}
foreach (string token in tokens)
Console.WriteLine(token);
代码有点草率。它迟到了。
如果您正在使用代理人,也可以测试代理人。