using System; using System.Text.RegularExpressions; namespace CallCenter.Utility { /// /// 数据转换操作类 /// public class TypeConverter { /// /// string型转换为bool型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的bool类型结果 public static bool StrToBool(object expression, bool defValue) { if (expression != null) return StrToBool(expression, defValue); return defValue; } /// /// string型转换为bool型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的bool类型结果 public static bool StrToBool(string expression, bool defValue) { if (expression != null) { if (String.Compare(expression, "true", StringComparison.OrdinalIgnoreCase) == 0) return true; if (String.Compare(expression, "false", StringComparison.OrdinalIgnoreCase) == 0) return false; } return defValue; } /// /// 将对象转换为Int32类型 /// /// 要转换的字符串 /// 转换后的int类型结果 public static int ObjectToInt(object expression) { return ObjectToInt(expression, 0); } /// /// 将对象转换为Int32类型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 public static int ObjectToInt(object expression, int defValue) { if (expression != null) return StrToInt(expression.ToString(), defValue); return defValue; } /// /// 将对象转换为Int32类型,转换失败返回0 /// /// 要转换的字符串 /// 转换后的int类型结果 public static int StrToInt(string str) { return StrToInt(str, 0); } /// /// 将对象转换为Int32类型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 public static int StrToInt(string str, int defValue) { if (string.IsNullOrEmpty(str) || str.Trim().Length >= 11 || !Regex.IsMatch(str.Trim(), @"^([-]|[0-9])[0-9]*(\.\w*)?$")) return defValue; int rv; if (Int32.TryParse(str, out rv)) return rv; return Convert.ToInt32(StrToFloat(str, defValue)); } /// /// string型转换为float型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 public static float StrToFloat(object strValue, float defValue) { if ((strValue == null)) return defValue; return StrToFloat(strValue.ToString(), defValue); } /// /// string型转换为float型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 public static float ObjectToFloat(object strValue, float defValue) { if ((strValue == null)) return defValue; return StrToFloat(strValue.ToString(), defValue); } /// /// string型转换为float型 /// /// 要转换的字符串 /// 转换后的int类型结果 public static float ObjectToFloat(object strValue) { return ObjectToFloat(strValue.ToString(), 0); } /// /// string型转换为float型 /// /// 要转换的字符串 /// 转换后的int类型结果 public static float StrToFloat(object strValue) { if ((strValue == null)) return 0; return StrToFloat(strValue.ToString(), 0); } /// /// string型转换为float型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 public static float StrToFloat(string strValue, float defValue) { if ((strValue == null) || (strValue.Length > 10)) return defValue; float intValue = defValue; bool IsFloat = Regex.IsMatch(strValue, @"^([-]|[0-9])[0-9]*(\.\w*)?$"); if (IsFloat) float.TryParse(strValue, out intValue); return intValue; } } }