asp.net字符串处理类代码

代码如下:

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;
}
}
}

(0)

相关推荐

  • ASP.NET通过自定义函数实现对字符串的大小写切换功能

    本文实例讲述了ASP.NET通过自定义函数实现对字符串的大小写切换功能.分享给大家供大家参考.具体实现方法如下: 方法1: public string ToggleCase(string input) { string result = string.Empty; char[] inputArray = input.ToCharArray(); foreach (char c in inputArray) { if (char.IsLower(c)) result += c.ToString()

  • ASP.NET JSON字符串与实体类的互转换示例代码

    还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈. 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization.Json;using System.ServiceModel.Web;///记得引用这个命名空间using System.IO;using System.Tex

  • Asp.Net中的字符串和HTML十进制编码转换实现代码

    Asp.Net将字符串转为&#区码位编码,或者将&#区码位编码字符串转为对应的字符串内容. &#数字;这种编码其实就是将单个字符转为对应的区码位(数字),然后区码位前缀加上"&#",后缀加上";"组成,对于这种编码的字符串,浏览器会自动解析为对应的字符. Asp.Net字符串和&#编码转换源代码和测试代码如下: using System; using System.Text.RegularExpressions; public

  • ASP.NET过滤HTML字符串方法总结

    本文实例讲述了ASP.NET过滤HTML字符串的方法,供大家参考使用,具体代码如下: /// <summary>去除HTML标记 /// /// </summary> /// <param name="Htmlstring">包括HTML的源码</param> /// <returns>已经去除后的文字</returns> public static string GetNoHTMLString(string Ht

  • asp.net 计算字符串中各个字符串出现的次数

    实现第一步,需要把字符串分割为一个array,需要使用到的函数Split(): 复制代码 代码如下: string[] arr = s.Split (','); 第二步,用Dictionary(TKey,TValue)实例化. 复制代码 代码如下: Dictionary<string, int> Statistics = new Dictionary<string, int>(); 第三步,统计: 复制代码 代码如下: foreach (string w in arr) { if

  • asp.net分割字符串的几种方法小结

    下面一一介绍一下: 1.最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个控制台项目.然后在Main()方法下输入下面的程序. 复制代码 代码如下: string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 2.使用多个字符进行分割 复制

  • asp.net中将某字符串切割成阵列并排序列出

    复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { string s = "a;b;d;z;y;u"; string[] sa = s.Split(';'); Array.Sort(sa); //排序 for (int i = 0; i < sa.Length; i++) { Response.Write(sa[i].ToString() + "<br />"); }

  • asp.net判断字符串是否是中文的方法

    任何字符在unicode编码中都占用两个字节.而在一般编码方式中英文字符可以用一个字节表示,中文要用两个.这样英文字符在unicode编码中多占用了一个没有用的字节,这个没用字节就用0代替.如果unicode编码中字符的第一个字节是0那他就是英文字符.不是0他就可能是除了英文字符之外的很多种语言的文字,不仅仅是中文. 复制代码 代码如下: View Code public bool CheckChinese(string str)        {            bool flag =

  • ASP.NET两个截取字符串的方法分享

    复制代码 代码如下: 两个截取字符串的实用方法(超过一定长度自动换行)/// /// 截取字符串,不限制字符串长度 /// /// 待截取的字符串 /// 每行的长度,多于这个长度自动换行 /// public string CutStr(string str,int len) { string s=""; for(int i=0;i 11 { int r= i% len; int last =(str.Length/len)*len; if (i!=0 && i<

  • ASP.NET从字符串中查找字符出现次数的具体实现方法

    首先想到的方法当然是从头遍历字符串并统计: 复制代码 代码如下: c1=0;for(inti=0;i {if(str[i]=='A'){c1++;}} 第二种方法也很容易想到,将字符串中所有要查找的字符去除,然后比较去除前后的字符串长度即可.这种方法遭到了某人的鄙视,据说性能很差而且多占空间. 复制代码 代码如下: c2=str.Length-str.Replace("A",String.Empty).Length; 接下来某人又提出了第三种方法,是用要查找的字符为分隔符,将原字符串分

随机推荐