• C# 半角?全角


    /// <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;
                }
            }
    
        }
    慎于行,敏于思!GGGGGG
  • 相关阅读:
    IE下的异步JS测试
    使用P3P实现 跨域共享Cookie
    DataRow的泛型扩展方法
    我的Exec方法
    原创:截取HttpResponse输出流
    SWT/JFACE 第五天,常用组件
    导入数据库:DMP
    JAVA常见错误收集
    swtjface学习第二天
    项目管理过程之项目团队
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/4062739.html
Copyright © 2020-2023  润新知