在 C# 中按片假名对日语文本进行排序

问题描述 投票:0回答:2

是否可以按片假名对日语字符串列表进行排序?

c# sorting unicode cjk
2个回答
4
投票

当然可以。如果你使用 CultureInfo,你可以这样做,这样就不用费心寻找大写/小写了。

// Create CultureInfo
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ja-JP");
//Create the StringComparer
StringComparer cmp = StringComparer.Create(ci, true);

// Sort your array of string
Array.Sort(myArray, cmp);

如果您愿意,可以扩展排序功能以不区分平假名和片假名:

//Create CultureInfo
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ja-JP");
// Set it so it ignores the kana type
CultureInfoCompare cmp =
new CultureInfoCompare(ci, System.Globalization.CompareOptions.IgnoreKanaType);
    
//Sort it
Array.Sort(myArray, cmp);

頑張ってください!


0
投票

是的,您当然可以按片假名字符串的组成字符对它们进行排序。但只有当您只对日语的一部分感兴趣时,这才有效。一般来说,日语字符串由平假名、片假名和汉字组成。

如果你想要基本的日语排序,我会使用kakasi将汉字转换为平假名,然后决定你想要如何排序平假名和片假名;就我个人而言,我会很想做あ、、、、、、、、等等

© www.soinside.com 2019 - 2024. All rights reserved.