我们经常需要对一个字符串进行格式化,比如:要将一个长度为10的字符串1234567890转化为这种格式: (123) 456 – 7890, 就可以使用用下面的函数
FormatData("1234567890","(###) ### - ####")
#region 对数据进行格式化
//========================================================================
// 函数名: FormatData
/// <summary>
/// 用于对数据进行格式化,格式的形式为'###,###,###'
/// </summary>
/// <param name="format">数据的格式</param>
/// <param name="data">数据</param>
/// <returns></returns>
/*=======================================================================
序号 更新日期 开发者 变更内容
0001 2008/07/22 张 新建
=======================================================================*/
public static string FormatData(string format, string data)
{
//格式化后的字符串
StringBuilder result = new StringBuilder();
//字符串的位置
int posData = 0;
//格式化字符的位置
int posFormat = 0;
//格式化字符为空时
if (string.IsNullOrEmpty(format))
{
return data;
}
//字符串为空时
if (string.IsNullOrEmpty(data))
{
return result.ToString();
}
char[] cFormat = format.ToCharArray();
char[] cData = data.ToCharArray();
//格式化
for (; posData < data.Length && posFormat < format.Length; posFormat++)
{
if (cFormat[posFormat] == '#')
{
result.Append(data[posData]);
posData++;
}
else
{
result.Append(cFormat[posFormat]);
}
}
//格式化字符<字符串长度时
if (posFormat >= format.Length)
{
result.Append(data.Substring(posData, data.Length - posData));
}
return result.ToString();
}
#endregion