我尝试使用C#中的cultureinfo将值9.999.999转换为9&999.999,但我无法使其正常工作。
我该怎么做?
答案 0 :(得分:2)
所以这是一个字符串,你想为第一组提供不同的组分隔符吗?
您可以替换除最后一个点之外的所有点:
string value = "9.999.999";
StringBuilder sb = new StringBuilder(value);
bool skippedLast = false;
for (int i = sb.Length - 1; i >= 0; i--)
{
if (sb[i] == '.')
{
if (!skippedLast)
skippedLast = true;
else
sb[i] = '\'';
}
}
string desiredOutput = sb.ToString(); // 9'999.999
答案 1 :(得分:1)
由于框架附带的默认IFormatProvider
实现缺乏您想要/需要的功能,我建议您自己实现该接口
另外,由于CultureInfo
未被密封,您可以扩展类并将您的实现提供给System.Threading.Thread.CurrentThread.CurrentCulture
...该线程上的所有连续格式化调用都将使用您的实现(除非使用特定的调用格式提供者......)