asp.net字符串处理类代码

时间:2022-09-14 18:20:13

代码如下:


using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Text; 
using System.Text.RegularExpressions; 
using System.Security.Cryptography; 
using System.IO; 
using System.Text; 
namespace StringClass 

public class StringHelper 

/// <summary> 
/// 去掉字符串中的所有空格 
/// </summary> 
/// <param name="_str"></param> 
/// <returns></returns> 
public static string ReMoveBlank(string _str) 

string strTemp = ""; 
CharEnumerator CEnumerator = _str.GetEnumerator(); 
while (CEnumerator.MoveNext()) 

byte[] array = new byte[1]; 
array = System.Text.Encoding.ASCII.GetBytes(CEnumerator.Current.ToString()); 
int asciicode = (short)(array[0]); 
if (asciicode != 32) 

strTemp += CEnumerator.Current.ToString(); 


return strTemp; 

/// <summary> 
/// 截取字符串并限制字符串长度,多于给定的长度+。。。 
/// </summary> 
/// <param name="str">待截取的字符串</param> 
/// <param name="len">每行的长度,多于这个长度自动换行</param> 
/// <param name="max">输出字符串最大的长度</param> 
/// <returns></returns> 
public static string CutStr(string str, int len, int max) 

string s = ""; 
string sheng = ""; 
if (str.Length > max) 

str = str.Substring(0, max); 
sheng = ""; 

for (int i = 0; i < str.Length; i++) 

int r = i % len; 
int last = (str.Length / len) * len; 
if (i != 0 && i <= last) 

if (r == 0) 

s += str.Substring(i - len, len) + "<br>"; 


else if (i > last) 

s += str.Substring(i - 1); 
break; 


return s + sheng; 

/// <summary> 
/// 截取字符串,不限制字符串长度 
/// </summary> 
/// <param name="str">待截取的字符串</param> 
/// <param name="len">每行的长度,多于这个长度自动换行</param> 
/// <returns></returns> 
public static string CutStr(string str, int len) 

string s = ""; 
for (int i = 0; i < str.Length; i++) 

int r = i % len; 
int last = (str.Length / len) * len; 
if (i != 0 && i <= last) 

if (r == 0) 

s += str.Substring(i - len, len) + "<br>"; 


else if (i > last) 

s += str.Substring(i - 1); 
break; 


return s; 

public static string PartSubString(string str, int len) 

if (str.Length > len) 

return str.Substring(0, len) + "..."; 

return str; 

/// <summary> 
///这个方法确保用户的输入不是恶毒的 
/// </summary> 
/// <param name="text">输入字符串</param> 
/// <param name="maxLength">最大长度</param> 
/// <returns>转换后的字符串</returns> 
public static string InputText(string text, int maxLength) 

text = text.Trim(); 
if (string.IsNullOrEmpty(text)) 
return string.Empty; 
if (text.Length > maxLength) 
text = text.Substring(0, maxLength); 
text = Regex.Replace(text, "[\\s]{2,}", " "); //two or more spaces 
text = Regex.Replace(text, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n"); //<br> 
text = Regex.Replace(text, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", " "); //  
text = Regex.Replace(text, "<(.|\\n)*?>", string.Empty); //any other tags 
text = text.Replace("'", "''"); 
return text; 

/// <summary> 
/// 字符串中大写字符转小写 
/// </summary> 
/// <param name="str"></param> 
/// <returns></returns> 
public static string StringToLower(string str) 

Char[] a = str.ToCharArray(); 
string strTemp = ""; 
for (int i = 0; i < a.Length; i++) 

if (Convert.ToInt32(a[i]) >= 65 && Convert.ToInt32(a[i]) <= 90) 
strTemp += a[i].ToString().ToLower(); 
else 
strTemp += a[i].ToString(); 

return strTemp; 

/// <summary> 
/// 加密 
/// </summary> 
/// <param name="str"></param> 
/// <param name="key">必须是8位的字符串</param> 
/// <returns></returns> 
public static string Encode(string str, int keyIndex) 

ArrayList alKey = new ArrayList(); 
alKey.Add("BookT@#+!NumBq2"); 
alKey.Add("MagaZine@(21&*ID5"); 
alKey.Add("ThesisDSHI}._Y"); 
string key = alKey[keyIndex].ToString(); 
DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); 
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); 
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); 
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str); 
MemoryStream stream = new MemoryStream(); 
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); 
stream2.Write(bytes, 0, bytes.Length); 
stream2.FlushFinalBlock(); 
StringBuilder builder = new StringBuilder(); 
foreach (byte num in stream.ToArray()) 

builder.AppendFormat("{0:X2}", num); 

stream.Close(); 
return builder.ToString(); 

/// <summary> 
/// Des 解密 GB2312 
/// </summary> 
/// <param name="str">Desc string</param> 
/// <param name="key">Key ,必须为8位 </param> 
/// <returns></returns> 
public static string Decode(string str, int keyIndex) 

ArrayList alKey = new ArrayList(); 
alKey.Add("BookT@#+!NumBq2"); 
alKey.Add("MagaZine@(21&*ID5"); 
alKey.Add("ThesisDSHI}._Y"); 
string key = alKey[keyIndex].ToString(); 
DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); 
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); 
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); 
byte[] buffer = new byte[str.Length / 2]; 
for (int i = 0; i < (str.Length / 2); i++) 

int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10); 
buffer[i] = (byte)num2; 

MemoryStream stream = new MemoryStream(); 
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write); 
stream2.Write(buffer, 0, buffer.Length); 
stream2.FlushFinalBlock(); 
stream.Close(); 
return Encoding.GetEncoding("GB2312").GetString(stream.ToArray()); 

/// <summary> 
/// MD5不可逆加密 32位 
/// </summary> 
/// <param name="s"></param> 
/// <param name="_input_charset"></param> 
/// <returns></returns> 
public static string GetMD5_32(string str1) 

string cl1 = str1; 
string pwd = ""; 
MD5 md5 = MD5.Create(); 
// 加密后是一个字节类型的数组 
byte[] s = md5.ComputeHash(Encoding.Unicode.GetBytes(cl1)); 
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得 
for (int i = 0; i < s.Length; i++) 

// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
pwd = pwd + s[i].ToString("x"); 

return pwd; 

/// <summary> 
/// MD5不可逆加密 16位 
/// </summary> 
/// <param name="ConvertString"></param> 
/// <returns></returns> 
public static string GetMd5_16(string ConvertString) 

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8); 
t2 = t2.Replace("-", ""); 
return t2;