C# 常用方法
来源:互联网 发布:零起点学通c语言要多久 编辑:程序博客网 时间:2024/06/17 19:35
using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.IO;using System.Linq;using System.Security.Cryptography;using System.Text;using System.Threading.Tasks;using System.Web;namespace CMS.Common{ public class StringPlus { private const string PASSWORD_BASE = "123456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz"; /// <summary> /// 去除第一个字符,取出第一个字符之后的所有字符 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string DeleteFirstChar(string str) { return str.Substring(1, str.Length - 1); } /// <summary> /// 删除最后结尾的一个逗号 /// </summary> public static string DelLastComma(string str) { return str.Substring(0, str.LastIndexOf(",")); } /// <summary> /// 删除最后结尾的指定字符后的字符 /// </summary> public static string DelLastChar(string str, string strchar) { return str.Substring(0, str.LastIndexOf(strchar)); } /// <summary> /// 截取指定字符长度 /// </summary> /// <param name="str"></param> /// <param name="strchar"></param> /// <returns></returns> public static string SubstringChar(string str, int length) { return str.Substring(0, length); } /// <summary> /// 从指定、特殊字符开始截取 /// </summary> /// <param name="str">http://192.168.1.41:8086/upload/customer/123456_20160315181634.jpg</param> /// <param name="IndexOf">/upload</param> /// <returns>/upload/customer/123456_20160315181634.jpg</returns> public static string SubstringIndexOfChar(string str, string IndexOf) { //return str.Substring(str.IndexOf("/upload")); return str.Substring(str.IndexOf(IndexOf) + 1); } /// <summary> /// 去掉最後一個字符 /// </summary> /// <param name="prestr"></param> /// <returns></returns> public static string DeleteLastChar(string prestr) { int nLen = prestr.Length; return prestr.Remove(nLen - 1, 1); } /// <summary> /// 图片文件转Base64String /// </summary> /// <param name="FilePath">文件绝对路径</param> /// <returns></returns> public static string ImageToBase64(string FilePath) { string path = @"F:\5845.jpg"; return Convert.ToBase64String(System.IO.File.ReadAllBytes(path)); } /** * 生成时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数 * @return 时间戳 */ public static string GenerateTimeStamp() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); } /** * 生成随机串,随机串包含字母或数字 * @return 随机串 */ public static string GenerateNonceStr() { return Guid.NewGuid().ToString().Replace("-", ""); } /// <summary> /// 随机密码 /// </summary> /// <param name="length"></param> /// <returns></returns> public static string RandomPassword(int length) { StringBuilder sb = new StringBuilder(); Random rnd = new Random(); for (int i = 0; i < length; i++) { sb.Append(PASSWORD_BASE[rnd.Next(0, PASSWORD_BASE.Length)]); } return sb.ToString(); } /// <summary> /// 生成随机数 /// </summary> /// <param name="length">生成字符串长度</param> /// <param name="type">1.数字+字母 2.整形 3.字符 4.许愿墙随机坐标代码</param> /// <returns></returns> public static string GenerateCode(int length, int type) { int number; char code; string checkCode = String.Empty; System.Random random = new Random(); if (type == 1) { for (int i = 0; i < length; i++) { number = random.Next(); if (number % 2 == 0) code = (char)('0' + (char)(number % 10)); else code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } } else if (type == 2) { for (int i = 0; i < length; i++) { number = random.Next(); code = (char)('0' + (char)(number % 10)); checkCode += code.ToString(); } } else if (type == 3) { for (int i = 0; i < length; i++) { number = random.Next(); code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } } else if (type == 4)//许愿墙随机坐标代码 { for (int i = 0; i < length; i++) { number = random.Next(10, 450); checkCode = number.ToString(); } } return checkCode; } /// <summary> /// 生成随机数 /// </summary> /// <param name="length"></param> /// <returns></returns> public static string BuildRandomStr(int length) { Random rand = new Random(); int num = rand.Next(); string str = num.ToString(); if (str.Length > length) { str = str.Substring(0, length); } else if (str.Length < length) { int n = length - str.Length; while (n > 0) { str.Insert(0, "0"); n--; } } return str; } /// <summary> /// 现有数组中抽取1个随机数 /// </summary> /// <returns></returns> public static string ArrayRandom(long[] arr) { string[] item = new string[4] { "1", "2", "3", "4" }; Random r = new Random(); string fi1 = arr[r.Next(arr.Length)].ToString(); return fi1; } /// <summary> /// 把字符串进行URL编码 /// </summary> /// <param name="src"></param> /// <param name="code"></param> /// <returns></returns> public static string UrlEncodeCode(string src, Encoding code) { return HttpUtility.UrlEncode(src, code); } /// <summary> /// 把字符串进行UTF8编码 /// </summary> /// <param name="src"></param> /// <returns></returns> public static string UrlEncodeUTF8(string src) { return HttpUtility.UrlEncode(src, System.Text.Encoding.UTF8); } /// <summary> /// 把字符串进行URL编码 /// </summary> /// <param name="src">原字符串</param> /// <param name="srcEncoding">Encoding.UTF8</param> /// <returns></returns> public static string UrlEncode(string src, System.Text.Encoding encoding) { byte[] b = encoding.GetBytes(src); StringBuilder result = new StringBuilder(); for (int i = 0; i < b.Length; i++) { result.Append('%'); result.Append(b[i].ToString("X2")); } return result.ToString(); } /// <summary> /// Base64加密 /// </summary> /// <param name="str">123456</param> /// <param name="encoding">Encoding.UTF8</param> /// <returns></returns> public static string ToBase64String(string str, System.Text.Encoding encoding) { string encodeStr; byte[] bytes = encoding.GetBytes(str); encodeStr = Convert.ToBase64String(bytes); return encodeStr; } /// <summary> /// Base64加密 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string ToBase64String(string str) { return ToBase64String(str, Encoding.UTF8); } /// <summary> /// Base64String转换成byte[] /// </summary> /// <param name="fileBase"></param> /// <returns></returns> public static byte[] Base64ToByte(string base64String) { byte[] file = null; if (!string.IsNullOrEmpty(base64String)) { file = Convert.FromBase64String(base64String); } return file; } /// <summary> /// 带有“,”的字符串转成int[] /// </summary> /// <param name="str">1,2,3,4,5,6,8,9,10,</param> /// <returns></returns> public static int[] StringToIntArray(string str) { int[] intArray = null; if (!string.IsNullOrEmpty(str)) { string newStr = str.TrimEnd(','); intArray = newStr.Split(',').Select(v => Convert.ToInt32(v)).ToArray(); } return intArray; } /// <summary> /// int[]转成String字符串 /// </summary> /// <param name="array"></param> /// <returns></returns> public static string IntArrayToString(int[] array) { string result = string.Empty; if (array.Count() > 0) { for (int i = 0; i < array.Length; i++) { if (0 == i) { result = array[0].ToString(); } else { result = result + "," + array[i].ToString(); } } } return result; } /// <summary> /// 带有“,”的字符串转成string[] /// </summary> /// <param name="str"></param> /// <returns></returns> public static string[] StringToStrArray(string str) { string[] strArray = null; if (!string.IsNullOrEmpty(str)) { strArray = str.Split(','); } return strArray; } /// <summary> /// Dictionary转成String[]数组 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string[] DictionaryToStrArray(Dictionary<string, string> dicArray) { string[] strArray = null; if (dicArray.Count > 0) { List<string> list = new List<string>(); foreach (var item in dicArray) { list.Add(item.Value); } strArray = list.ToArray(); } return strArray; } /// <summary> /// 带有“,”的字符串转成Dictionary<string, string> /// </summary> /// <param name="str"></param> /// <returns></returns> public static Dictionary<string, string> StringToDictionary(string str) { Dictionary<string, string> dict = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(str)) { string[] strArray = str.Split(','); for (int i = 0; i < strArray.Length; i++) { string value = strArray[i].ToString(); if (StringPlus.SubstringChar(value, 4) != "http") { dict.Add("pic" + i.ToString(), value); } } } return dict; } /// <summary> /// Dictionary转成String字符串 /// 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 /// </summary> /// <param name="dicArray">需要拼接的数组</param> /// <returns>拼接完成以后的字符串</returns> public static string DictionaryToString(Dictionary<string, string> dicArray) { StringBuilder prestr = new StringBuilder(); if (dicArray.Count > 0) { foreach (KeyValuePair<string, string> temp in dicArray) { prestr.Append(temp.Key + "=" + temp.Value + "&"); } //去掉最後一個&字符 int nLen = prestr.Length; prestr.Remove(nLen - 1, 1); } return prestr.ToString(); } /// <summary> /// Dictionary转成Json /// </summary> /// <param name="dicArray"></param> /// <returns></returns> public static string DictionaryToJson(Dictionary<string, string> dicArray) { StringBuilder prestr = new StringBuilder(); prestr.Append("["); if (dicArray.Count > 0) { int i = 0; foreach (KeyValuePair<string, string> temp in dicArray) { if (i == 0) { prestr.Append("{\"" + temp.Key + "\":" + temp.Value + ","); } else if (i == dicArray.Count - 1) { prestr.Append("\"" + temp.Key + "\":" + temp.Value + "}"); } else { prestr.Append("\"" + temp.Key + "\":" + temp.Value + ","); } i++; } } prestr.Append("]"); return prestr.ToString(); } /// <summary> /// Dictionary转成String字符串 /// </summary> /// <param name="dicList"></param> /// <returns></returns> private static String buildQueryStr(Dictionary<String, String> dicList) { String postStr = ""; foreach (var item in dicList) { postStr += item.Key + "=" + HttpUtility.UrlEncode(item.Value, Encoding.UTF8) + "&"; } postStr = postStr.Substring(0, postStr.LastIndexOf('&')); return postStr; } /// <summary> /// String[]转成String字符串 /// </summary> /// <param name="arrParams"></param> /// <returns></returns> public static String buildParamStr(String[] arrParams) { String postStr = ""; for (int i = 0; i < arrParams.Length; i++) { if (0 == i) { postStr = "chatroomId=" + HttpUtility.UrlDecode(arrParams[0], Encoding.UTF8); } else { postStr = postStr + "&" + "chatroomId=" + HttpUtility.UrlEncode(arrParams[i], Encoding.UTF8); } } return postStr; } /// <summary> /// Guid[]转成String字符串 /// </summary> /// <param name="arrParams"></param> /// <returns></returns> public static string ArrayToString(Guid[] arrParams) { string postStr = ""; for (int i = 0; i < arrParams.Length; i++) { if (0 == i) { postStr = "'" + arrParams[0].ToString() + "'"; } else { postStr = postStr + "," + "'" + arrParams[i].ToString() + "'"; } } return postStr; } public static int GetNullToInt(int? id) { try { if (id == null) return 0; else return (int)id; } catch (Exception) { return 0; } } public static int GetStringToInt(string id) { try { if (string.IsNullOrEmpty(id)) return 0; else return Convert.ToInt32(id); } catch (Exception) { return 0; } } public static long GetNullToLong(long id) { try { if (id == null) return 0; else return (long)id; } catch (Exception) { return 0; } } public static decimal GetNullToDecimal(decimal? id) { try { if (id == null) return 0; else return (decimal)id; } catch (Exception) { return 0; } } public static decimal GetNullToDecimal(string id) { try { if (string.IsNullOrEmpty(id)) return 0; else return Convert.ToDecimal(id); } catch (Exception) { return 0; } } public static string GetNullToString(string name) { try { if (string.IsNullOrEmpty(name)) return ""; else return name; } catch (Exception) { return ""; } } public static DateTime StringToDateTime(string time) { try { if (string.IsNullOrEmpty(time)) return Convert.ToDateTime("1870-01-01"); else return Convert.ToDateTime(time); } catch (Exception) { return Convert.ToDateTime("1870-01-01"); } } public static string GetNullToDateTime(DateTime? date) { try { if(date.HasValue) { if (Convert.ToDateTime(date) == Convert.ToDateTime("1870-01-01")) return ""; } } catch (Exception) { } return ""; } /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="data"></param> /// <returns></returns> public static T GetNullValue<T>(T data) { if (data == null) return default(T); return (T)data; } /// <summary> /// GetNullValue调用示例 /// </summary> public void TestGetNullValue() { string str = GetNullValue<string>("test"); int count = GetNullValue<int>(123); decimal price = GetNullValue<decimal>(Convert.ToDecimal(123.45)); decimal total = GetNullValue<decimal>(Convert.ToDecimal(null)); } /// <summary> /// SqlDataReader读取数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <param name="field"></param> /// <returns></returns> public static T GetNullableReaderValue<T>(IDataReader reader, string field) { if (reader[field] == DBNull.Value) return default(T); return (T)reader[field]; ///调用示例 //using (IDataReader reader = ExecuteDataReader(strSql.ToString(), pars)) //{ // while (reader.Read()) // { // string result = GetNullableReaderValue<string>(reader, "PoNumber"); // } //} } /// <summary> /// 获取web.config的key值 /// </summary> /// <param name="key"><add key="APIDomain" value="test" /></param> /// <returns>test</returns> public static string GetWebConfigKey(string key) { string result = string.Empty; try { if (!string.IsNullOrEmpty(key)) result = ConfigurationManager.AppSettings[key]; } catch (Exception) { } return result; } /// <summary> /// 过滤特殊字符 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string DelQuota(string str) { string result = str; string[] strQuota = { "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "`", ";", "'", ",", ".", "/", ":", "/,", "<", ">", "?" }; for (int i = 0; i < strQuota.Length; i++) { if (result.IndexOf(strQuota[i]) > -1) result = result.Replace(strQuota[i], ""); } return result; } /// <summary> /// 写日志,方便测试 /// </summary> /// <param name="sWord">要写入日志里的文本内容</param> public static void LogResult(string sWord) { string strPath = HttpContext.Current.Server.MapPath("log"); strPath = strPath + "\\" + DateTime.Now.ToString().Replace(":", "") + ".txt"; StreamWriter fs = new StreamWriter(strPath, false, System.Text.Encoding.Default); fs.Write(sWord); fs.Close(); } /** * 实际的写日志操作 * @param type 日志记录类型 * @param className 类名 * @param content 写入内容 */ public static void WriteLog(string type, string className, string content) { //在网站根目录下创建日志目录 string path = HttpContext.Current.Request.PhysicalApplicationPath + "logs"; if (!Directory.Exists(path))//如果日志目录不存在就创建 { Directory.CreateDirectory(path); } string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间 string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名 //创建或打开日志文件,向日志文件末尾追加记录 StreamWriter mySw = File.AppendText(filename); //向日志文件写入内容 string write_content = time + " " + type + " " + className + ": " + content; mySw.WriteLine(write_content); //关闭日志文件 mySw.Close(); } #region URL请求数据 /// <summary> /// HTTP POST方式请求数据 /// </summary> /// <param name="url">URL.</param> /// <param name="param">POST的数据</param> /// <returns></returns> public static string HttpPost(string url, string param) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "*/*"; request.Timeout = 15000; request.AllowAutoRedirect = false; StreamWriter requestStream = null; WebResponse response = null; string responseStr = null; try { requestStream = new StreamWriter(request.GetRequestStream()); requestStream.Write(param); requestStream.Close(); response = request.GetResponse(); if (response != null) { StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); reader.Close(); } } catch (Exception) { throw; } finally { request = null; requestStream = null; response = null; } return responseStr; } /// <summary> /// HTTP GET方式请求数据. /// </summary> /// <param name="url">URL.</param> /// <returns></returns> public static string HttpGet(string url) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "GET"; //request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "*/*"; request.Timeout = 15000; request.AllowAutoRedirect = false; WebResponse response = null; string responseStr = null; try { response = request.GetResponse(); if (response != null) { StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); reader.Close(); } } catch (Exception) { throw; } finally { request = null; response = null; } return responseStr; } /// <summary> /// 执行URL获取页面内容 /// </summary> public static string UrlExecute(string urlPath) { if (string.IsNullOrEmpty(urlPath)) { return "error"; } StringWriter sw = new StringWriter(); try { HttpContext.Current.Server.Execute(urlPath, sw); return sw.ToString(); } catch (Exception) { return "error"; } finally { sw.Close(); sw.Dispose(); } } #endregion }}
0 0
- C#常用方法
- C#常用函数、方法
- C#常用函数、方法
- C#常用函数方法
- C#常用函数、方法
- C#常用方法
- 常用的C#方法
- c# 常用方法集
- C# ToString()常用方法
- C# 常用方法
- 常用的C#方法
- C# 字符串常用方法
- C#常用方法
- c# 常用方法
- C#常用方法总结
- C#常用加密方法
- C#常用方法
- C# 常用方法
- MMDrawerController 和 StoryBoard 配合使用
- Struts2视图类型
- Linux中用st_mode判断文件类型
- apache commons fileupload 1.3.1(六)FileItem部分
- FragmentPagerAdapter 标准写法 fragment + viewpager
- C# 常用方法
- Struts2常用属性配置
- 重新计算listview高度
- 【Raspberry Pi系列】3. 交叉编译环境配置
- JavaMail发送邮件
- 网络摘抄
- 提高group by语句的执行效率
- Struts2文件上传和下载
- Frequentist和Bayesian之间的故事