Сортировка японского текста по Катакана в C#

Можно ли отсортировать список японских струн по катакане?

2 ответа

Решение

Что вы можете. Если вы используете 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);

頑 張 っ て く だ さ い!

Да, конечно, вы можете сортировать строки катаканы по составным символам. Но это будет работать только в том случае, если вас интересует только часть японского языка. Обычно японские нити состоят из хираганы, катаканы и кандзи.

Если вам нужна базовая сортировка по японскому языку, я бы использовал kakasi для преобразования кандзи в хирагана, а затем решил, как вы хотите заказать хирагану и катакану; лично я бы соблазнился сделать あ, ア, い, イ, う, ウ и т. д.

Другие вопросы по тегам