zoukankan      html  css  js  c++  java
  • 字符串处理类

    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*)+", " "); //&nbsp;
                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;
    
            }
        }
    }
     
  • 相关阅读:
    -bash java: cannot execute binary file (华为鲲鹏云)
    Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)
    华为鲲鹏云服务器编译安装mysql-5.7.27 报错error: could not split insn
    centos7.6安装nginx并设置开机自启
    ansible常用模块实例
    Nginx、tomcat日志切割
    Linux系统文件系统损坏修复实例
    Rest模式get,put,post,delete含义与区别(转)
    从关系型数据库到非关系型数据库
    SQL Server 2012 Express LocalDB 的作用
  • 原文地址:https://www.cnblogs.com/52net/p/2528930.html
Copyright © 2011-2022 走看看