RegEx またはその他の方法で、0 ~ 9 の数字を ०-९ (デーバナーガリー スクリプト) に変換する方法を探していました。私はasp.netを使用していますが、これを行うグローバリゼーション名前空間にメソッドが見つかりませんでした。
どんな助けでも大歓迎です。
RegEx またはその他の方法で、0 ~ 9 の数字を ०-९ (デーバナーガリー スクリプト) に変換する方法を探していました。私はasp.netを使用していますが、これを行うグローバリゼーション名前空間にメソッドが見つかりませんでした。
どんな助けでも大歓迎です。
ここで同様の投稿を見つけました!
ソースと宛先の文化を知っているので、私の解決策は少し異なります。したがって、数字の配列をハードコーディングできます。
string devYear = "";
string[] devD = { "०", "१", "२", "३", "४", "५", "६", "७", "८", "९" };
char[] digits = curYear.ToCharArray();
foreach (char ch in digits)
{
devYear += devD[int.Parse(ch.ToString())];
}
もう 1 つの変更点は、devD 配列の代わりに年の数字を反復処理していることです。ほとんどの数値は 10 桁未満になるため、反復回数が少なくなります。私の場合、わずか4桁です。
同様の行で立ち往生している人に役立つことを願っています。
各ラテン数字 0..9 は正確にデーバナーガリー数字にマップされますか (ウィキペディアを正しく理解していれば、そう思います)=
はいの場合、次の方法はどうでしょうか。
public static string ConvertDigits( string s )
{
return s
.Replace("0", "०")
.Replace("1", "१")
.Replace("2", "२")
.Replace("3", "३")
.Replace("4", "४")
.Replace("5", "५")
.Replace("6", "६")
.Replace("7", "७")
.Replace("8", "८")
.Replace("9", "९");
}
string.IsNullOrEmpty()
最適化のために、関数を呼び出す前に確認できstring.Replace
ます。
さらに (デバナーガリー数字に適している場合)、s ではなく s をパラメーターとして受け取るstring.Replace()
関数オーバーロードを 呼び出します。char
string