私のC#アプリケーションでは、文字列を次のように使用しています
string sTemp = "10.12;12.13;15.345";
ここで、現在のロケールに従って、この文字列とその内容(特に数値の場合)をフォーマットできる方法があるかどうかを知りたいと思います。最終的には、sTempをフランス語ロケールで「10,12;12,13;15,345」にする必要があります。
出来ますか?
私のC#アプリケーションでは、文字列を次のように使用しています
string sTemp = "10.12;12.13;15.345";
ここで、現在のロケールに従って、この文字列とその内容(特に数値の場合)をフォーマットできる方法があるかどうかを知りたいと思います。最終的には、sTempをフランス語ロケールで「10,12;12,13;15,345」にする必要があります。
出来ますか?
string sTemp = "10.12;12.13;15.345";
string[] splitted = sTemp.Split(';');
IEnumerable<float> floats = splitted.Select(s => float.Parse(s, System.Globalization.CultureInfo.InvariantCulture));
string localized = floats.Select(f => f.ToString()).Aggregate((current, next) => current + ";" + next);
String.Split(';')
文字列 double を分割するために使用し、 double.Parse
with を使用しCultureInfo.InvariantCulture
て入力を解析し、double.ToString
with CultureInfo.CurrentCulture
(または "fr-FR") を使用して出力を解析します。
string sTemp = "10.12;12.13;15.345";
var doubles = sTemp.Split(';')
.Select(s => double.Parse(s, CultureInfo.InvariantCulture));
var locale = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");
// or var locale = System.Globalization.CultureInfo.CurrentCulture;
var localeDoubleStrings = doubles.Select(d => d.ToString(locale));
foreach(string frDoubleStr in localeDoubleStrings)
Console.WriteLine(frDoubleStr);
宣言された内容の文字列を使用していると思いますが、その場合はフォーマットする必要があります
例
// this would be as per french culture
Console.WriteLine(string.Format(new CultureInfo("Fr-fr"), "{0};{1};{2};", 10.2, 15.6, 25.3));
// this would be invariant
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0};{1};{2};", 10.2, 15.6, 25.3));
だからあなたはただ言う必要があり、それはあなたCultureInfo.CurrentCulture
のために働くはずです.
ただし、コンテンツで使用している場合は、文字列コンテンツをどのように構築しているかで質問を更新する必要があります