- 字符串处理是经常用到的,写一个比较全且通用的StringHelper,方便日后调用。
- 本篇代码涉及到的字符串处理:
(1)将数字字符串转换为int。
(2)将数字字符串转换为decimal。
(3)将object转换为int。
(4)把字符串按照分隔符转换成 List。
(5)把字符串按照分隔符转换为数组。
(6)把 List<string> 按照分隔符组装成 string。
(7)把 List<int> 按照分隔符组装成 string。
(8)把 Dictionary<int, int> list 按照分隔符组装成 string。
(9)删除最后结尾的指定字符后的字符。
(10)将字符串按照指定的分隔符拆分成子字符串,并将非空且不等于分隔符的子字符串添加到列表中。
(11)得到字符串长度,一个汉字长度为2。
(12)截取指定长度字符串。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common
{
/// <summary>
/// 字符串处理类 转换int decimal object-->int List<string> string[] 字符串截取 。。。
/// </summary>
public static class StringHelper
{
/// <summary>
/// 将数字字符串转换为int
/// </summary>
/// <param name="strValue"></param>
/// <returns></returns>
public static int GetInt(this string strValue)
{
int reInt = 0;
int.TryParse(strValue, out reInt);
return reInt;
}
/// <summary>
/// 将数字字符串转换为decimal
/// </summary>
/// <param name="strValue"></param>
/// <returns></returns>
public static decimal GetDecimal(this string strValue)
{
decimal reInt = 0;
decimal.TryParse(strValue, out reInt);
return reInt;
}
/// <summary>
/// 将object转换为int
/// </summary>
/// <param name="strValue"></param>
/// <returns></returns>
public static int GetInt(this object oValue)
{
int reInt = 0;
try
{
reInt = Convert.ToInt32(oValue);
}
catch
{
reInt = 0;
}
return reInt;
}
/// <summary>
/// 把字符串按照分隔符转换成 List
/// </summary>
/// <param name="str">源字符串</param>
/// <param name="speater">分隔符</param>
/// <param name="toLower">是否转换为小写</param>
/// <returns></returns>
public static List<string> GetStrList(this string str, char speater, bool toLower)
{
List<string> list = new List<string>();
string[] ss = str.Split(speater);
foreach (string s in ss)
{
if (!string.IsNullOrEmpty(s) && s != speater.ToString())
{
string strVal = s;
if (toLower)
{
strVal = s.ToLower();
}
list.Add(strVal);
}
}
return list;
}
/// <summary>
/// 把字符串按照分隔符转换为数组
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string[] GetStrArray(this string str, char speater)
{
return str.Split(new Char[] { speater });
}
/// <summary>
/// 把 List<string> 按照分隔符组装成 string
/// </summary>
/// <param name="list"></param>
/// <param name="speater"></param>
/// <returns></returns>
public static string GetListToString(this List<string> list, string speater)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.Count; i++)
{
if (i == list.Count - 1)
{
sb.Append(list[i]);
}
else
{
sb.Append(list[i]);
sb.Append(speater);
}
}
return sb.ToString();
}
/// <summary>
/// 把 List<int> 按照分隔符组装成 string
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static string GetListToStr(this List<int> list, string speater)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.Count; i++)
{
if (i == list.Count - 1)
{
sb.Append(list[i].ToString());
}
else
{
sb.Append(list[i]);
sb.Append(speater);
}
}
return sb.ToString();
}
/// <summary>
/// 把 Dictionary<int, int> list 按照分隔符组装成 string
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static string GetArrayValueStr(this Dictionary<int, int> list, string speater)
{
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<int, int> kvp in list)
{
sb.Append(kvp.Value + speater);
}
if (list.Count > 0)
{
return DelLastComma(sb.ToString());
}
else
{
return "";
}
}
/// <summary>
/// 删除最后结尾的一个逗号后的字符
/// </summary>
public static string DelLastComma(this string str)
{
return str.Substring(0, str.LastIndexOf(","));
}
/// <summary>
/// 删除最后结尾的指定字符后的字符
/// </summary>
public static string DelLastChar(this string str, string strchar)
{
return str.Substring(0, str.LastIndexOf(strchar));
}
/// <summary>
/// 将字符串按照指定的分隔符拆分成子字符串,并将非空且不等于分隔符的子字符串添加到列表中。
/// </summary>
/// <param name="o_str"></param>
/// <param name="sepeater"></param>
/// <returns></returns>
public static List<string> GetSubStringList(this string o_str, string sepeater)
{
List<string> list = new List<string>();
string[] ss = o_str.Split(sepeater);
foreach (string s in ss)
{
if (!string.IsNullOrEmpty(s) && s != sepeater.ToString())
{
list.Add(s);
}
}
return list;
}
/// <summary>
/// 得到字符串长度,一个汉字长度为2
/// </summary>
/// <param name="inputString">参数字符串</param>
/// <returns></returns>
public static int StrLength(this string inputString)
{
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
int tempLen = 0;
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
tempLen += 2;
else
tempLen += 1;
}
return tempLen;
}
/// <summary>
/// 截取指定长度字符串
/// </summary>
/// <param name="inputString">要处理的字符串</param>
/// <param name="len">指定长度</param>
/// <returns>返回处理后的字符串</returns>
public static string ClipString(this string inputString, int len)
{
bool isShowFix = false;
if (len % 2 == 1)
{
isShowFix = true;
len--;
}
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
tempLen += 2;
else
tempLen += 1;
try
{
tempString += inputString.Substring(i, 1);
}
catch
{
break;
}
if (tempLen >= len)
break;
}
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
if (isShowFix && mybyte.Length > len)
tempString += "…";
return tempString;
}
}
}