C#.NET 处理字符串数据去左右空格、全角转半角
C#.NET 处理字符串数据去左右空格、全角转半角
C# Code:
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
public sealed class FieldFitString
{
const string _SEPERATOR = "&^*";
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
/// <param name="dt"></param>
public static void FitString(DataTable dt)
{
DataTable tmp = dt.GetChanges();
if (tmp == null) return;
//枚举Columns,仅处理字符类型的Field
//枚举DataRow,仅处理新增、修改状态的记录
string tmpFileNames = string.Empty;
//取出字段
for (int i = 0; i < dt.Columns.Count; i )
{
if (dt.Columns[i].DataType == Type.GetType("System.String"))
{
tmpFileNames = _SEPERATOR dt.Columns[i].Caption;
}
}
string[] FileNames = tmpFileNames.Split(new string[] { _SEPERATOR }, StringSplitOptions.RemoveEmptyEntries);
//仅处理已修改的资料行
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified)
{
foreach (string filename in FileNames)
{
dr[filename] = RemoveChar(ConvertEx.ToString(dr[filename]));
}
}
}
}
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string RemoveChar(string str)
{
if (String.IsNullOrEmpty(str)) return str;
try
{
string NewStr = string.Empty;
char[] c = str.ToCharArray();
for (int i = 0; i < c.Length; i )
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
//全角
if (b[1] == 255 || b[1] == 48)
{
b[0] = (byte)(b[0] 32);
b[1] = 0;
NewStr = System.Text.Encoding.Unicode.GetChars(b)[0];
}
else
{
NewStr = c[i];
}
}
}
return NewStr.Trim();//去左右空格
}
catch
{
return str;
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
public sealed class FieldFitString
{
const string _SEPERATOR = "&^*";
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
/// <param name="dt"></param>
public static void FitString(DataTable dt)
{
DataTable tmp = dt.GetChanges();
if (tmp == null) return;
//枚举Columns,仅处理字符类型的Field
//枚举DataRow,仅处理新增、修改状态的记录
string tmpFileNames = string.Empty;
//取出字段
for (int i = 0; i < dt.Columns.Count; i )
{
if (dt.Columns[i].DataType == Type.GetType("System.String"))
{
tmpFileNames = _SEPERATOR dt.Columns[i].Caption;
}
}
string[] FileNames = tmpFileNames.Split(new string[] { _SEPERATOR }, StringSplitOptions.RemoveEmptyEntries);
//仅处理已修改的资料行
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified)
{
foreach (string filename in FileNames)
{
dr[filename] = RemoveChar(ConvertEx.ToString(dr[filename]));
}
}
}
}
/// <summary>
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string RemoveChar(string str)
{
if (String.IsNullOrEmpty(str)) return str;
try
{
string NewStr = string.Empty;
char[] c = str.ToCharArray();
for (int i = 0; i < c.Length; i )
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
//全角
if (b[1] == 255 || b[1] == 48)
{
b[0] = (byte)(b[0] 32);
b[1] = 0;
NewStr = System.Text.Encoding.Unicode.GetChars(b)[0];
}
else
{
NewStr = c[i];
}
}
}
return NewStr.Trim();//去左右空格
}
catch
{
return str;
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网