字符串的处理函数集
来源:互联网 发布:java把字符串变成数组 编辑:程序博客网 时间:2024/06/05 09:00
下面的字符串的处理函数集来自Seaskyer
#region "字符串的处理函数集"
/// <summary>
/// 字符串的处理函数集
/// </summary>
public class Str
{
/// <summary>
/// 将 Stream 转化成 string
/// </summary>
/// <param name="s">Stream流</param>
/// <returns>string</returns>
public static string ConvertStreamToString(Stream s)
{
string strResult = "";
StreamReader sr = new StreamReader( s, Encoding.UTF8 );
Char[] read = new Char[256];
// Read 256 charcters at a time.
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
// Dump the 256 characters on a string and display the string onto the console.
string str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
// 释放资源
sr.Close();
return strResult;
}
/// <summary>
/// 对传递的参数字符串进行处理,防止注入式攻击
/// </summary>
/// <param name="str">传递的参数字符串</param>
/// <returns>String</returns>
public static string ConvertSql(string str)
{
str = str.Trim();
str = str.Replace("'", "''");
str = str.Replace(";--", "");
str = str.Replace("=", "");
str = str.Replace(" or ", "");
str = str.Replace(" and ", "");
return str;
}
/// <summary>
/// 格式化占用空间大小的输出
/// </summary>
/// <param name="size">大小</param>
/// <returns>返回 String</returns>
public static string FormatNUM(long size)
{
decimal NUM;
string strResult;
if( size > 1073741824 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1073741824));
strResult = NUM.ToString("N") + " M";
}
else if( size > 1048576 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1048576));
strResult = NUM.ToString("N") + " M";
}
else if( size > 1024 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1024));
strResult = NUM.ToString("N") + " KB";
}
else
{
strResult = size + " 字节";
}
return strResult;
}
/// <summary>
/// 判断字符串是否为有效的邮件地址
/// </summary>
/// <param name="email"></param>
/// <returns></returns>
public static bool IsValidEmail(string email)
{
return Regex.IsMatch(email,@"^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$");
}
/// <summary>
/// 判断字符串是否为有效的URL地址
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static bool IsValidURL(string url)
{
return Regex.IsMatch(url,@"^(http|https|ftp)://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9-._?,'//+&%$#=~])*[^.,)(s]$");
}
/// <summary>
/// 判断字符串是否为Int类型的
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsValidInt(string val)
{
return Regex.IsMatch(val,@"^[1-9]d*.?[0]*$");
}
/// <summary>
/// 检测字符串是否全为正整数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNum(string str)
{
bool blResult = true;//默认状态下是数字
if(str == "")
blResult = false;
else
{
foreach(char Char in str)
{
if(!char.IsNumber(Char))
{
blResult = false;
break;
}
}
if(blResult)
{
if(int.Parse(str) == 0)
blResult = false;
}
}
return blResult;
}
/// <summary>
/// 检测字符串是否全为数字型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsDouble(string str)
{
bool blResult = true;//默认状态下是数字
if(str == "")
blResult = false;
else
{
foreach(char Char in str)
{
if(!char.IsNumber(Char) && Char.ToString() != "-")
{
blResult = false;
break;
}
}
}
return blResult;
}
/// <summary>
/// 输出由同一字符组成的指定长度的字符串
/// </summary>
/// <param name="Char">输出字符,如:A</param>
/// <param name="i">指定长度</param>
/// <returns></returns>
public static string Strings(char Char, int i)
{
string strResult = null;
for(int j = 0; j < i; j++)
{
strResult += Char;
}
return strResult;
}
/// <summary>
/// 返回字符串的真实长度,一个汉字字符相当于两个单位长度
/// </summary>
/// <param name="str">指定字符串</param>
/// <returns></returns>
public static int Len(string str)
{
int intResult = 0;
foreach(char Char in str)
{
if((int)Char > 127)
intResult += 2;
else
intResult ++;
}
return intResult;
}
/// <summary>
/// 以日期为标准获得一个绝对的名称
/// </summary>
/// <returns>返回 String</returns>
public static string MakeName()
{
/*
string y = DateTime.Now.Year.ToString();
string m = DateTime.Now.Month.ToString();
string d = DateTime.Now.Day.ToString();
string h = DateTime.Now.Hour.ToString();
string n = DateTime.Now.Minute.ToString();
string s = DateTime.Now.Second.ToString();
return y + m + d + h + n + s;
*/
return DateTime.Now.ToString("yyMMddHHmmss");
}
/// <summary>
/// 返回字符串的真实长度,一个汉字字符相当于两个单位长度(使用Encoding类)
/// </summary>
/// <param name="str">指定字符串</param>
/// <returns></returns>
public static int getLen(string str)
{
int intResult = 0;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] bytes = gb2312.GetBytes(str);
intResult = bytes.Length;
return intResult;
}
/// <summary>
/// 按照字符串的实际长度截取指定长度的字符串
/// </summary>
/// <param name="str">字符串</param>
/// <param name="Length">指定长度</param>
/// <returns></returns>
public static string CutLen(string str, int Length)
{
int i = 0, j = 0;
foreach(char Char in str)
{
if((int)Char > 127)
i += 2;
else
i ++;
if(i > Length)
{
str = str.Substring(0, j - 2) + "...";
break;
}
j ++;
}
return str;
}
/// <summary>
/// 获取指定长度的纯数字随机数字串
/// </summary>
/// <param name="intLong">数字串长度</param>
/// <returns>字符串</returns>
public static string RandomNUM(int intLong)
{
string strResult = "";
Random r = new Random();
for(int i = 0; i < intLong; i ++)
{
strResult = strResult + r.Next(10);
}
return strResult;
}
/// <summary>
/// 获取一个由26个小写字母组成的指定长度的随即字符串
/// </summary>
/// <param name="intLong">指定长度</param>
/// <returns></returns>
public static string RandomSTR(int intLong)
{
string strResult = "";
string[] array = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
Random r = new Random();
for(int i = 0; i < intLong; i++)
{
strResult += array[r.Next(26)];
}
return strResult;
}
/// <summary>
/// 获取一个由数字和26个小写字母组成的指定长度的随即字符串
/// </summary>
/// <param name="intLong">指定长度</param>
/// <returns></returns>
public static string RandomNUMSTR(int intLong)
{
string strResult = "";
string[] array = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
Random r = new Random();
for(int i = 0; i < intLong; i++)
{
strResult += array[r.Next(36)];
}
return strResult;
}
/// <summary>
/// 将简体中文转化成繁体中文
/// </summary>
/// <param name="str">简体中文字符串</param>
/// <returns>string</returns>
public static string ConvertToTraditionalChinese(string str)
{
return Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.TraditionalChinese, System.Globalization.CultureInfo.CurrentUICulture.LCID);
}
/// <summary>
/// 将繁体中文转化成简体中文
/// </summary>
/// <param name="str">繁体中文字符串</param>
/// <returns>string</returns>
public static string ConvertToSimplifiedChinese(string str)
{
return Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.SimplifiedChinese, System.Globalization.CultureInfo.CurrentUICulture.LCID);
}
/// <summary>
/// 将指定字符串中的汉字转换为拼音首字母的缩写,其中非汉字保留为原字符
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string ConvertSpellFirst(string text)
{
char pinyin;
byte[] array;
StringBuilder sb = new StringBuilder(text.Length);
foreach(char c in text)
{
pinyin = c;
array = Encoding.Default.GetBytes(new char[]{c});
if(array.Length == 2)
{
int i = array[0] * 0x100 + array[1];
if(i < 0xB0A1) pinyin = c; else
if(i < 0xB0C5) pinyin = 'a'; else
if(i < 0xB2C1) pinyin = 'b'; else
if(i < 0xB4EE) pinyin = 'c'; else
if(i < 0xB6EA) pinyin = 'd'; else
if(i < 0xB7A2) pinyin = 'e'; else
if(i < 0xB8C1) pinyin = 'f'; else
if(i < 0xB9FE) pinyin = 'g'; else
if(i < 0xBBF7) pinyin = 'h'; else
if(i < 0xBFA6) pinyin = 'g'; else
if(i < 0xC0AC) pinyin = 'k'; else
if(i < 0xC2E8) pinyin = 'l'; else
if(i < 0xC4C3) pinyin = 'm'; else
if(i < 0xC5B6) pinyin = 'n'; else
if(i < 0xC5BE) pinyin = 'o'; else
if(i < 0xC6DA) pinyin = 'p'; else
if(i < 0xC8BB) pinyin = 'q'; else
if(i < 0xC8F6) pinyin = 'r'; else
if(i < 0xCBFA) pinyin = 's'; else
if(i < 0xCDDA) pinyin = 't'; else
if(i < 0xCEF4) pinyin = 'w'; else
if(i < 0xD1B9) pinyin = 'x'; else
if(i < 0xD4D1) pinyin = 'y'; else
if(i < 0xD7FA) pinyin = 'z';
}
sb.Append(pinyin);
}
return sb.ToString();
}
#endregion
/// <summary>
/// 字符串的处理函数集
/// </summary>
public class Str
{
/// <summary>
/// 将 Stream 转化成 string
/// </summary>
/// <param name="s">Stream流</param>
/// <returns>string</returns>
public static string ConvertStreamToString(Stream s)
{
string strResult = "";
StreamReader sr = new StreamReader( s, Encoding.UTF8 );
Char[] read = new Char[256];
// Read 256 charcters at a time.
int count = sr.Read( read, 0, 256 );
while (count > 0)
{
// Dump the 256 characters on a string and display the string onto the console.
string str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
// 释放资源
sr.Close();
return strResult;
}
/// <summary>
/// 对传递的参数字符串进行处理,防止注入式攻击
/// </summary>
/// <param name="str">传递的参数字符串</param>
/// <returns>String</returns>
public static string ConvertSql(string str)
{
str = str.Trim();
str = str.Replace("'", "''");
str = str.Replace(";--", "");
str = str.Replace("=", "");
str = str.Replace(" or ", "");
str = str.Replace(" and ", "");
return str;
}
/// <summary>
/// 格式化占用空间大小的输出
/// </summary>
/// <param name="size">大小</param>
/// <returns>返回 String</returns>
public static string FormatNUM(long size)
{
decimal NUM;
string strResult;
if( size > 1073741824 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1073741824));
strResult = NUM.ToString("N") + " M";
}
else if( size > 1048576 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1048576));
strResult = NUM.ToString("N") + " M";
}
else if( size > 1024 )
{
NUM = (Convert.ToDecimal(size)/Convert.ToDecimal(1024));
strResult = NUM.ToString("N") + " KB";
}
else
{
strResult = size + " 字节";
}
return strResult;
}
/// <summary>
/// 判断字符串是否为有效的邮件地址
/// </summary>
/// <param name="email"></param>
/// <returns></returns>
public static bool IsValidEmail(string email)
{
return Regex.IsMatch(email,@"^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$");
}
/// <summary>
/// 判断字符串是否为有效的URL地址
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static bool IsValidURL(string url)
{
return Regex.IsMatch(url,@"^(http|https|ftp)://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9-._?,'//+&%$#=~])*[^.,)(s]$");
}
/// <summary>
/// 判断字符串是否为Int类型的
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsValidInt(string val)
{
return Regex.IsMatch(val,@"^[1-9]d*.?[0]*$");
}
/// <summary>
/// 检测字符串是否全为正整数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNum(string str)
{
bool blResult = true;//默认状态下是数字
if(str == "")
blResult = false;
else
{
foreach(char Char in str)
{
if(!char.IsNumber(Char))
{
blResult = false;
break;
}
}
if(blResult)
{
if(int.Parse(str) == 0)
blResult = false;
}
}
return blResult;
}
/// <summary>
/// 检测字符串是否全为数字型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsDouble(string str)
{
bool blResult = true;//默认状态下是数字
if(str == "")
blResult = false;
else
{
foreach(char Char in str)
{
if(!char.IsNumber(Char) && Char.ToString() != "-")
{
blResult = false;
break;
}
}
}
return blResult;
}
/// <summary>
/// 输出由同一字符组成的指定长度的字符串
/// </summary>
/// <param name="Char">输出字符,如:A</param>
/// <param name="i">指定长度</param>
/// <returns></returns>
public static string Strings(char Char, int i)
{
string strResult = null;
for(int j = 0; j < i; j++)
{
strResult += Char;
}
return strResult;
}
/// <summary>
/// 返回字符串的真实长度,一个汉字字符相当于两个单位长度
/// </summary>
/// <param name="str">指定字符串</param>
/// <returns></returns>
public static int Len(string str)
{
int intResult = 0;
foreach(char Char in str)
{
if((int)Char > 127)
intResult += 2;
else
intResult ++;
}
return intResult;
}
/// <summary>
/// 以日期为标准获得一个绝对的名称
/// </summary>
/// <returns>返回 String</returns>
public static string MakeName()
{
/*
string y = DateTime.Now.Year.ToString();
string m = DateTime.Now.Month.ToString();
string d = DateTime.Now.Day.ToString();
string h = DateTime.Now.Hour.ToString();
string n = DateTime.Now.Minute.ToString();
string s = DateTime.Now.Second.ToString();
return y + m + d + h + n + s;
*/
return DateTime.Now.ToString("yyMMddHHmmss");
}
/// <summary>
/// 返回字符串的真实长度,一个汉字字符相当于两个单位长度(使用Encoding类)
/// </summary>
/// <param name="str">指定字符串</param>
/// <returns></returns>
public static int getLen(string str)
{
int intResult = 0;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] bytes = gb2312.GetBytes(str);
intResult = bytes.Length;
return intResult;
}
/// <summary>
/// 按照字符串的实际长度截取指定长度的字符串
/// </summary>
/// <param name="str">字符串</param>
/// <param name="Length">指定长度</param>
/// <returns></returns>
public static string CutLen(string str, int Length)
{
int i = 0, j = 0;
foreach(char Char in str)
{
if((int)Char > 127)
i += 2;
else
i ++;
if(i > Length)
{
str = str.Substring(0, j - 2) + "...";
break;
}
j ++;
}
return str;
}
/// <summary>
/// 获取指定长度的纯数字随机数字串
/// </summary>
/// <param name="intLong">数字串长度</param>
/// <returns>字符串</returns>
public static string RandomNUM(int intLong)
{
string strResult = "";
Random r = new Random();
for(int i = 0; i < intLong; i ++)
{
strResult = strResult + r.Next(10);
}
return strResult;
}
/// <summary>
/// 获取一个由26个小写字母组成的指定长度的随即字符串
/// </summary>
/// <param name="intLong">指定长度</param>
/// <returns></returns>
public static string RandomSTR(int intLong)
{
string strResult = "";
string[] array = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
Random r = new Random();
for(int i = 0; i < intLong; i++)
{
strResult += array[r.Next(26)];
}
return strResult;
}
/// <summary>
/// 获取一个由数字和26个小写字母组成的指定长度的随即字符串
/// </summary>
/// <param name="intLong">指定长度</param>
/// <returns></returns>
public static string RandomNUMSTR(int intLong)
{
string strResult = "";
string[] array = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
Random r = new Random();
for(int i = 0; i < intLong; i++)
{
strResult += array[r.Next(36)];
}
return strResult;
}
/// <summary>
/// 将简体中文转化成繁体中文
/// </summary>
/// <param name="str">简体中文字符串</param>
/// <returns>string</returns>
public static string ConvertToTraditionalChinese(string str)
{
return Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.TraditionalChinese, System.Globalization.CultureInfo.CurrentUICulture.LCID);
}
/// <summary>
/// 将繁体中文转化成简体中文
/// </summary>
/// <param name="str">繁体中文字符串</param>
/// <returns>string</returns>
public static string ConvertToSimplifiedChinese(string str)
{
return Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.SimplifiedChinese, System.Globalization.CultureInfo.CurrentUICulture.LCID);
}
/// <summary>
/// 将指定字符串中的汉字转换为拼音首字母的缩写,其中非汉字保留为原字符
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string ConvertSpellFirst(string text)
{
char pinyin;
byte[] array;
StringBuilder sb = new StringBuilder(text.Length);
foreach(char c in text)
{
pinyin = c;
array = Encoding.Default.GetBytes(new char[]{c});
if(array.Length == 2)
{
int i = array[0] * 0x100 + array[1];
if(i < 0xB0A1) pinyin = c; else
if(i < 0xB0C5) pinyin = 'a'; else
if(i < 0xB2C1) pinyin = 'b'; else
if(i < 0xB4EE) pinyin = 'c'; else
if(i < 0xB6EA) pinyin = 'd'; else
if(i < 0xB7A2) pinyin = 'e'; else
if(i < 0xB8C1) pinyin = 'f'; else
if(i < 0xB9FE) pinyin = 'g'; else
if(i < 0xBBF7) pinyin = 'h'; else
if(i < 0xBFA6) pinyin = 'g'; else
if(i < 0xC0AC) pinyin = 'k'; else
if(i < 0xC2E8) pinyin = 'l'; else
if(i < 0xC4C3) pinyin = 'm'; else
if(i < 0xC5B6) pinyin = 'n'; else
if(i < 0xC5BE) pinyin = 'o'; else
if(i < 0xC6DA) pinyin = 'p'; else
if(i < 0xC8BB) pinyin = 'q'; else
if(i < 0xC8F6) pinyin = 'r'; else
if(i < 0xCBFA) pinyin = 's'; else
if(i < 0xCDDA) pinyin = 't'; else
if(i < 0xCEF4) pinyin = 'w'; else
if(i < 0xD1B9) pinyin = 'x'; else
if(i < 0xD4D1) pinyin = 'y'; else
if(i < 0xD7FA) pinyin = 'z';
}
sb.Append(pinyin);
}
return sb.ToString();
}
#endregion
- 字符串的处理函数集
- 处理字符串的函数
- 常用的字符串处理函数
- vc 字符串的处理函数
- python的字符串处理函数
- ASP的字符串处理函数
- Loadrunner的字符串处理函数
- 字符串处理函数的实现
- 有用的函数-字符串处理
- 处理字符串用到的函数
- 字符串处理的常用函数
- matlab的字符串处理函数
- 常用的字符串处理函数
- Loadrunner的字符串处理函数
- 字符串处理函数的小结
- 字符串处理函数的实现
- 字符串处理函数的实现
- 使用字符串的处理函数
- ORACLE ERP的完全词汇表详细介绍
- C#中使用GDI+实现复杂打印
- 一些Select检索高级用法
- Visual Studio.net 2003安装提示重启问题
- Oracle的初学者入门心得
- 字符串的处理函数集
- 自定义处理(得到浏览器,日期,本机的MAC地址)
- 工作两年的心得(转)
- 全国价格最低的高效能地图发布软件(GIS) MapSay IMS
- 深入理解VC中的消息
- 正则表达式的应用(Seaskyer)
- 硬件开发的基本准则-转
- MYSQL商标在中国被抢注
- 英雄会妙语录