C#中各种数据类型转换的方法的类
//各种数据类型转换方法的类
public class GF_Convert
{
/// <summary>
/// 字符串 转换 char数组
/// </summary>
/// <param name="in_str"></param>
/// <param name="in_len"></param>
/// <returns></returns>
public static char[] string2chararray(string in_str, int in_len)
{
char[] ch = new char[in_len];
in_str.ToCharArray().CopyTo(ch, 0);
return ch;
}
/// <summary>
/// char数组 转换 字符串
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static string chararray2string(char[] in_str)
{
string out_str;
out_str = new string(in_str);
int i = out_str.IndexOf('\0', 0);
if (i == -1)
i = 16;
return out_str.Substring(0, i);
}
/// <summary>
/// byte数组 转换 字符串
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static string bytearray2string(byte[] in_str)
{
string out_str;
out_str = System.Text.Encoding.Default.GetString(in_str);
return out_str.Substring(0, out_str.IndexOf('\0', 0));
}
/// <summary>
/// 字符串 转换 byte数组 注意转换出来会使原来的bytearray长度变短
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static byte[] string2bytearray(string in_str)
{
return System.Text.Encoding.Default.GetBytes(in_str);
}
/// <summary>
/// 字符串 转换 byte数组 长度为传如的长度
/// </summary>
/// <param name="in_str">传入字符串</param>
/// <param name="iLen">目标字节数组长度</param>
/// <returns></returns>
public static byte[] string2bytearray(string in_str, int iLen)
{
byte[] bytes = new byte[iLen];
byte[] bsources=System.Text.Encoding.Default.GetBytes(in_str);
Array.Copy(bsources, bytes, bsources.Length);
return bytes;
}
/// <summary>
/// 将字符串编码为Base64字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Encode(string str)
{
byte[] barray;
barray = Encoding.Default.GetBytes(str);
return Convert.ToBase64String(barray);
}
/// <summary>
/// 将Base64字符串解码为普通字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Decode(string str)
{
byte[] barray;
try
{
barray = Convert.FromBase64String(str);
return Encoding.Default.GetString(barray);
}
catch
{
return str;
}
}
/// <summary>
/// 图片 转换 byte数组
/// </summary>
/// <param name="pic"></param>
/// <param name="fmt"></param>
/// <returns></returns>
public static byte[] image_Image2Byte(Image pic, System.Drawing.Imaging.ImageFormat fmt)
{
MemoryStream mem = new MemoryStream();
pic.Save(mem, fmt);
mem.Flush();
return mem.ToArray();
}
/// <summary>
/// byte数组 转换 图片
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static Image image_Byte2Image(byte[] bytes)
{
MemoryStream mem = new MemoryStream(bytes, true);
mem.Read(bytes, 0, bytes.Length);
mem.Flush();
Image aa = Image.FromStream(mem);
return aa;
}
/// <summary>
/// ip 转换 长整形
/// </summary>
/// <param name="strIP"></param>
/// <returns></returns>
public static long IP2Long(string strIP)
{
long[] ip = new long[4];
string[] s = strIP.Split('.');
ip[0] = long.Parse(s[0]);
ip[1] = long.Parse(s[1]);
ip[2] = long.Parse(s[2]);
ip[3] = long.Parse(s[3]);
return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
}
/// <summary>
/// 长整形 转换 IP
/// </summary>
/// <param name="longIP"></param>
/// <returns></returns>
public static string Long2IP(long longIP)
{
StringBuilder sb = new StringBuilder("");
sb.Append(longIP >> 24);
sb.Append(".");
//将高8位置0,然后右移16为
sb.Append((longIP & 0x00FFFFFF) >> 16);
sb.Append(".");
sb.Append((longIP & 0x0000FFFF) >> 8);
sb.Append(".");
sb.Append((longIP & 0x000000FF));
return sb.ToString();
}
/// <summary>
/// 将8位日期型整型数据转换为日期字符串数据
/// </summary>
/// <param name="date">整型日期</param>
/// <param name="chnType">是否以中文年月日输出</param>
/// <returns></returns>
public static string FormatDate(int date, bool chnType)
{
string dateStr = date.ToString();
if (date <= 0 || dateStr.Length != 8)
return dateStr;
if (chnType)
return dateStr.Substring(0, 4) + "年" + dateStr.Substring(4, 2) + "月" + dateStr.Substring(6) + "日";
return dateStr.Substring(0, 4) + "-" + dateStr.Substring(4, 2) + "-" + dateStr.Substring(6);
}
/// <summary>
/// string型转换为bool型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的bool类型结果</returns>
public static bool StrToBool(object expression, bool defValue)
{
if (expression != null)
return StrToBool(expression, defValue);
return defValue;
}
/// <summary>
/// string型转换为bool型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的bool类型结果</returns>
public static bool StrToBool(string expression, bool defValue)
{
if (expression != null)
{
if (string.Compare(expression, "true", true) == 0)
return true;
else if (string.Compare(expression, "false", true) == 0)
return false;
}
return defValue;
}
/// <summary>
/// 将对象转换为Int32类型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static int ObjectToInt(object expression)
{
return ObjectToInt(expression, 0);
}
/// <summary>
/// 将对象转换为Int32类型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static int ObjectToInt(object expression, int defValue)
{
if (expression != null)
return StrToInt(expression.ToString(), defValue);
return defValue;
}
/// <summary>
/// 将对象转换为Int32类型,转换失败返回0
/// </summary>
/// <param name="str">要转换的字符串</param>
/// <returns>转换后的int类型结果</returns>
public static int StrToInt(string str)
{
return StrToInt(str, 0);
}
/// <summary>
/// 将对象转换为Int32类型
/// </summary>
/// <param name="str">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
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));
}
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null))
return defValue;
return StrToFloat(strValue.ToString(), defValue);
}
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float ObjectToFloat(object strValue, float defValue)
{
if ((strValue == null))
return defValue;
return StrToFloat(strValue.ToString(), defValue);
}
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float ObjectToFloat(object strValue)
{
return ObjectToFloat(strValue.ToString(), 0);
}
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(string strValue)
{
if ((strValue == null))
return 0;
return StrToFloat(strValue.ToString(), 0);
}
/// <summary>
/// string型转换为float型
/// </summary>
/// <param name="strValue">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static float StrToFloat(string strValue, float defValue)
{
if ((strValue == null) || (strValue.Length > 10))
return defValue;
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = Regex.IsMatch(strValue, @"^([-]|[0-9])[0-9]*(\.\w*)?$");
if (IsFloat)
float.TryParse(strValue, out intValue);
}
return intValue;
}
/// <summary>
/// 将对象转换为日期时间类型
/// </summary>
/// <param name="str">要转换的字符串</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static DateTime StrToDateTime(string str, DateTime defValue)
{
if (!string.IsNullOrEmpty(str))
{
DateTime dateTime;
if (DateTime.TryParse(str, out dateTime))
return dateTime;
}
return defValue;
}
/// <summary>
/// 将对象转换为日期时间类型
/// </summary>
/// <param name="str">要转换的字符串</param>
/// <returns>转换后的int类型结果</returns>
public static DateTime StrToDateTime(string str)
{
return StrToDateTime(str, DateTime.Now);
}
/// <summary>
/// 将对象转换为日期时间类型
/// </summary>
/// <param name="obj">要转换的对象</param>
/// <returns>转换后的int类型结果</returns>
public static DateTime ObjectToDateTime(object obj)
{
return StrToDateTime(obj.ToString());
}
/// <summary>
/// 将对象转换为日期时间类型
/// </summary>
/// <param name="obj">要转换的对象</param>
/// <param name="defValue">缺省值</param>
/// <returns>转换后的int类型结果</returns>
public static DateTime ObjectToDateTime(object obj, DateTime defValue)
{
return StrToDateTime(obj.ToString(), defValue);
}
/// <summary>
/// 替换回车换行符为html换行符
/// </summary>
public static string StrFormat(string str)
{
string str2;
if (str == null)
{
str2 = "";
}
else
{
str = str.Replace("\r\n", "<br />");
str = str.Replace("\n", "<br />");
str2 = str;
}
return str2;
}
/// <summary>
/// 转换为简体中文
/// </summary>
public static string ToSChinese(string str)
{
return Strings.StrConv(str, VbStrConv.SimplifiedChinese, 0);
}
/// <summary>
/// 转换为繁体中文
/// </summary>
public static string ToTChinese(string str)
{
return Strings.StrConv(str, VbStrConv.TraditionalChinese, 0);
}
/// <summary>
/// 清除字符串数组中的重复项
/// </summary>
/// <param name="strArray">字符串数组</param>
/// <param name="maxElementLength">字符串数组中单个元素的最大长度</param>
/// <returns></returns>
public static string[] DistinctStringArray(string[] strArray, int maxElementLength)
{
Hashtable h = new Hashtable();
foreach (string s in strArray)
{
string k = s;
if (maxElementLength > 0 && k.Length > maxElementLength)
{
k = k.Substring(0, maxElementLength);
}
h[k.Trim()] = s;
}
string[] result = new string[h.Count];
h.Keys.CopyTo(result, 0);
return result;
}
/// <summary>
/// 清除字符串数组中的重复项
/// </summary>
/// <param name="strArray">字符串数组</param>
/// <returns></returns>
public static string[] DistinctStringArray(string[] strArray)
{
return DistinctStringArray(strArray, 0);
}
}
转载于:https://www.cnblogs.com/kevinGao/archive/2011/11/04/2671034.html
C#中各种数据类型转换的方法的类相关推荐
- python类型转换astype-python中numpy数据类型转换的方法
本篇文章主要讲述numpy转换astype,dtype的方法,具体代码展示如下: 1.查看数据类型In [11]: arr = np.array([1,2,3,4,5]) In [12]: arr O ...
- Python之pandas:pandas中常见的数据类型转换四大方法以及遇到的一些坑之详细攻略
Python之pandas:pandas中常见的数据类型转换四大方法以及遇到的一些坑之详细攻略 目录 pandas中常见的数据类型转换方法 T1.读取时直接转换数据类型 T2.采用astype
- WPF中在XAML中实现数据类型转换的两种方法
WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...
- Python之pandas:特征工程中数据类型(object/category/bool/int32/int64/float64)的简介、数据类型转换四大方法、案例应用之详细攻略
Python之pandas:特征工程中数据类型(object/category/bool/int32/int64/float64)的简介.数据类型转换四大方法.案例应用之详细攻略 目录 特征工程中数据 ...
- java 类型转换方法_Java中的实用类型转换的方法
Java中的实用类型转换的方法 1, 类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...
- QVariant类及QVariant与自定义数据类型转换的方法
这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型"擦除"的作用.比如我们的 table单元格可以是string,也可以是int ...
- C/C++中的数据类型转换
文章目录 1 隐式类型转换 1.1 隐式类型转换的基本概念 1.2 隐式类型转换的发生点 1.3 浮点数赋值给整形数分析 2 C语言中的强制类型转换 3 C++中的强制类型转换 3.1 static_ ...
- java xml二进制流传输_XML中二进制数据的处理方法
XML中二进制数据的处理方法 在xml中,所有的数据都是以文本的形式来显示,但是二进制数据不能直接以文本格式来表示,那xml又是怎么处理二进制数据的呢?下面就来探讨一下. 为了简单和通用性,xml被设 ...
- oracle数据库速度测试,【原创】验证在Oracle数据库中操纵数据的各种方法的速度...
机器配置:组装的PC SERVER,4AMD CPU,8G内存,4块SCSI硬盘.Oracle 10.2.0.4. 试验目的:在244上,对xxx_flow表进行复制.更新,验证在Oracle数据库中 ...
最新文章
- 微软 Windows 10 物联网版系统 IoT 介绍 树莓派2 可以装一下
- 安装模块时提示Collecting package metadata (repodata.json): failed
- jquery清空div内容_jQuery常用功能
- 数据类型和Json格式
- Qt + Python + OpenCV图标替换工具 之 Qt界面设计(四)
- View绑定式监听器实现原理
- python控制gpio产生固定数量的脉冲_STM32L151用dma控制GPIO口发出指定的脉冲个数的疑惑!...
- Linux 命令(42)—— join 命令
- 安装linux-mysql-yum方式
- 我的世界java版游戏图标_minecraftpe JAVA版游戏包mod
- Kali Linux 暴力破解 Excel密码
- 一套简单的基本生活财富自由方案
- EAS序时簿界面显示,不再忽略数值零
- python3 parser
- 网易互娱2017实习生招聘在线笔试(三)
- 安装Office 2016 出现 Office 16 Click-to-Run Extensibility Component
- 机器学习——朴素贝叶斯分类
- cad上样条曲线上的点太多了_CAD样条曲线怎么能增加编辑点? CAD中如何按照
- 求解全微分的原函数(二元)
- Eclilpse插件安装
热门文章
- 苹果挂端口方法_一招教你,让光猫四个端口既能上网又能IPTV,不用再区分端口...
- linux硬盘写0,linux – kworker消耗90%的IO和零磁盘写入
- html css3d效果,html,css的3D变形
- c语言swatch的用法返回,Linux swatch系统监控程序命令详解
- 成绩查看_托福网考免费寄送成绩单,掌握这些知识能帮你省不少钱!
- pc端汽车obd软件下载?_常用的ERP软件电脑端下载
- mysql 5.5.55_MySQL系列(5)
- 面板panel与窗口frame的区别
- 边沿检测与信号同步?
- MATLAB中的三角函数单位问题