C#对字符串执行字节操作
2012-03-01 10:29
197 查看
写两个扩展方法,分别实现“得到字符串的字节长度”和“按字节长度截取字符串”的功能。
public static class Test
{
/// <summary>
/// 按字节长度截取字符串
/// </summary>
/// <param name="str"></param>
/// <param name="num">要截取的字节个数</param>
/// <returns></returns>
public static string SubBytestring(this string str, int num)
{
string strNum = str.Trim();
if (Encoding.Default.GetBytes(strNum).Length <= num)
{
return strNum;
}
byte[] bytes2 = Encoding.Default.GetBytes(str.Substring(0,str.Length<num?str.Length:num));
string strNum1 = Encoding.Default.GetString(bytes2, 0, num);
int len = strNum1.Length;
if (str.Substring(0, len) != strNum1)
{
return Encoding.Default.GetString(bytes2, 0, num - 1);
}
return strNum1;
}
/// <summary>
/// 得到字符串的字节长度
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int ByteLength(this string str)
{
return Encoding.Default.GetBytes(str.Trim()).Length;
}
}
调用:
string str = "a中b华3".SubBytestring(6);
int len = "a中b华3".ByteLength();
参考:http://yandavid.blog.163.com/blog/static/10779084201010182383338/
public static class Test
{
/// <summary>
/// 按字节长度截取字符串
/// </summary>
/// <param name="str"></param>
/// <param name="num">要截取的字节个数</param>
/// <returns></returns>
public static string SubBytestring(this string str, int num)
{
string strNum = str.Trim();
if (Encoding.Default.GetBytes(strNum).Length <= num)
{
return strNum;
}
byte[] bytes2 = Encoding.Default.GetBytes(str.Substring(0,str.Length<num?str.Length:num));
string strNum1 = Encoding.Default.GetString(bytes2, 0, num);
int len = strNum1.Length;
if (str.Substring(0, len) != strNum1)
{
return Encoding.Default.GetString(bytes2, 0, num - 1);
}
return strNum1;
}
/// <summary>
/// 得到字符串的字节长度
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int ByteLength(this string str)
{
return Encoding.Default.GetBytes(str.Trim()).Length;
}
}
调用:
string str = "a中b华3".SubBytestring(6);
int len = "a中b华3".ByteLength();
参考:http://yandavid.blog.163.com/blog/static/10779084201010182383338/
相关文章推荐
- c# 流,字节,字符,字符串操作
- 读书笔记_C#技术内幕_第二十五章(字符串操作)(String类)
- C# 格式化字符串,日期,字符串操作汇总
- 编写高质量代码改善C#程序的157个建议——建议1:正确操作字符串
- C#字符串常见操作总结
- C#中的字符串操作
- C#通过函数名字符串执行相应的函数
- C# 中的字符串操作汇总
- C#中流,字节,字符,字符串
- C#中字符串与字节数组互换的几种编码问题
- [收藏]C#中一些字符串操作的常用用法
- C#获取字符串的字节数
- C#(asp.net)对字符串的操作公共类(StringUtil.cs)
- C#中获取字符串字节长度的方法
- 关于c#执行mysql操作,传递参数的问题
- C# 线程知识--使用Task执行异步操作
- c#之字符串与字节数组互转
- C# 16进制与字符串、字节数组之间的转换
- C#-优化字符串操作(转自清清月儿,且删除部分)
- C# 16进制与字符串、字节数组之间的转换