辞書とlinqを使用して、特定の文字列の英語の数字をアラビア数字に置き換える関数を作成しました。しかし、機能は正確に置き換えられていません。たとえば、英語の数字が 12345 の場合、アラビア数字は 12534 またはアラビア語で 53214 です。何が問題になる可能性がありますか?
私の機能は次のとおりです。
private Dictionary<string, string> NumbersInArabic()
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("0", "٠");
dictionary.Add("1", "١");
dictionary.Add("2", "٢");
dictionary.Add("3", "٣");
dictionary.Add("4", "٤");
dictionary.Add("5", "٥");
dictionary.Add("6", "٦");
dictionary.Add("7", "٧");
dictionary.Add("8", "٨");
dictionary.Add("9", "٩");
return dictionary;
}
private string ReplaceNumberTextToArabic(string text)
{
var newstr = NumbersInArabic().Aggregate(text, (current, value) => current.Replace(value.Key, value.Value));
return newstr.ToString();
}