时间:2016-02-16 00:49 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net字符串处理类代码】,下面是详细的讲解!
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;
}
}
}
关于asp.net字符串处理类代码的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
