获取TextBox组件(多行设置)的文本内容,对文本内容进行根据回车(\r\n),逗号内容进行切割;
①字符串操作核心类
/***
* Title: "三维可视化" 项目
* 主题 : 字符串或数字的操作
* Description:
* 功能 :
* 1、实现去除字符串中的数字或非数字
* 2、实现对数值或者字符串保留指定小数点后几位的操作
* 3、提取括号里面的内容
* 4、获取字符串中的指定内容
* 5、提取字符串中的所有(英文逗号,)分割的内容,且存储在数组中
* 6、切割字符串中的所有(回车"\r\n")分割的内容
* 7、去除字符串中的空格
* Date: 2020-03-18
* Version: 1.2
* Author: Coffee
* Modify Recoder:
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace Kernal
{
public class StringOrNumberOPC
{
#region 1-去除字符串中的数字或非数字
///
/// 去掉字符串中的数字
///
/// 需要处理的字符串
/// 返回去除了数字的字符串
public static string RemoveNumber(string str)
{
if (!string.IsNullOrEmpty(str))
{
return System.Text.RegularExpressions.Regex.Replace(str, @"\d", "");
}
return null;
}
///
/// 去掉字符串中的非数字
///
/// 需要处理的字符串
/// 返回去除了非数字的字符串
public static string RemoveNotNumber(string str)
{
if (!string.IsNullOrEmpty(str))
{
return System.Text.RegularExpressions.Regex.Replace(str, @"[^\d]*", "");
}
return null;
}
#endregion
#region 2-保留数字或者字符串小数点后的指定位数
///
/// 保留字符串中的小数点后两位
///
/// 需要保留的字符串
/// 保留小数点后的位数【默认是两位】
/// 返回只有小数点后两位的字符串
public static string KeepPointDecimal(string value, int keepDecimalLength = 2)
{
string tmp = string.Empty;
try
{
if (!string.IsNullOrEmpty(value) && keepDecimalLength > 0)
{
if (value.IndexOf('.') > 0)
{
string[] str = value.Split('.');
string str2 = ".00";
if (!string.IsNullOrEmpty(str[1]))
{
str2 = "." + str[1].Substring(0, keepDecimalLength);
}
tmp = str[0] + str2;
}
}
}
catch (System.Exception)
{
tmp = value;
return tmp;
}
return tmp;
}
///
/// 保留字符串中的小数点后两位
///
/// 需要保留的数值
/// 保留小数点后的位数【默认是两位】
/// 返回只有小数点后两位的字符串
public static string KeepPointDecimal(float value, int keepDecimalLength = 2)
{
string tmp = string.Empty;
try
{
if (value > 0 && keepDecimalLength > 0)
{
string strFormat = "{0:N" + keepDecimalLength + "}";
tmp = string.Format(strFormat, value);
}
}
catch (System.Exception)
{
tmp = value.ToString();
return tmp;
}
return tmp;
}
#endregion
#region 3-提取括号里面的内容
///
/// c
///
/// 需要处理的字符串
/// 括号的类型【0表示小括号1表示中括号2表示大括号】
///
public static string GetBracketsContents(string strNeedOPC, int bracketsType = 0)
{
string strTmp = string.Empty;
if (!string.IsNullOrEmpty(strNeedOPC))
{
switch (bracketsType)
{
case 0:
strTmp = Regex.Replace(strNeedOPC, @"(.*\()(.*)(\).*)", "$2");//获取小括号()里面的内容
break;
case 1:
Regex rex = new Regex(@"(?i)(?<=\[)(.*)(?=\])");//获取中括号[]里面的内容正则规则
strTmp = rex.Match(strNeedOPC).Value;
break;
case 2:
strTmp = Regex.Match(strNeedOPC, @"\{(.*)\}", RegexOptions.Singleline).Groups[1].Value;//获取大括号{}里面的内容
break;
default:
break;
}
}
return strTmp;
}
#endregion
#region 4-获取字符串中的指定内容
///
/// 获取一个字符串指定内容的方法【保留索引后面的部分内容】
///
/// 需要拆分的字符串
/// 需要获取拆分出来的字符串的开始索引
/// 返回值为null为表示拆分失败
public static string GetNeedStrOfBack(string needSplitContent, int startIndex)
{
string value = string.Empty;
if (!string.IsNullOrEmpty(needSplitContent))
{
try
{
int totalLength = needSplitContent.Length;
if (startIndex > 0)
{
int surplusLength = totalLength - startIndex;
string needContent = needSplitContent.Substring(startIndex, surplusLength);
if (!string.IsNullOrEmpty(needContent))
{
value = needContent;
}
}
}
catch (Exception ex)
{
Console.WriteLine("当前解析的字符串出错!!!;" + ex.Message);
return null;
}
}
return value;
}
///
/// 获取一个字符串指定内容的方法【保留从0开始到达的索引部分的内容】
///
/// 需要拆分的字符串
/// 需要获取拆分出来的字符串到达的索引
/// 返回值为null为表示拆分失败
public static string GetNeedStrOfFront(string needSplitContent, int arriveIndex)
{
string value = string.Empty;
if (!string.IsNullOrEmpty(needSplitContent))
{
try
{
int totalLength = needSplitContent.Length;
if (arriveIndex > 0)
{
string needContent = needSplitContent.Substring(0, arriveIndex);
if (!string.IsNullOrEmpty(needContent))
{
value = needContent;
}
}
}
catch (Exception ex)
{
Console.WriteLine("当前解析的字符串出错!!!;" + ex.Message);
return null;
}
}
return value;
}
///
/// 获取一个字符串指定内容的方法【保留从开始索引到指定索引部分的内容】
///
/// 需要拆分的字符串
/// 需要获取拆分出来的字符串的开始索引
/// 需要获取拆分出来的字符串的结束索引
/// 返回值为null为表示拆分失败
public static string GetNeedStrOfPointIndex(string needSplitContent, int startIndex, int endIndex)
{
string value = string.Empty;
if (!string.IsNullOrEmpty(needSplitContent))
{
try
{
int totalLength = needSplitContent.Length;
if (startIndex>=0 && endIndex <= totalLength && endIndex>0)
{
string needContent = needSplitContent.Substring(startIndex, endIndex);
if (!string.IsNullOrEmpty(needContent))
{
value = needContent;
}
}
}
catch (Exception ex)
{
Console.WriteLine("当前解析的字符串出错!!!;" + ex.Message);
return null;
}
}
return value;
}
#endregion
#region 5-切割字符串中的所有(英文逗号,)分割的内容
///
/// 字符串中的所有(英文逗号,)分割的内容,且存储在数组中
///
/// 需要切割的包含(英文逗号,)字符串
///
public static string[] GetListOfSplitComma(string str)
{
string[] tmpStr = null;
if (!string.IsNullOrEmpty(str))
{
try
{
tmpStr = str.Split(',');
}
catch (Exception)
{
return null;
}
}
return tmpStr;
}
#endregion
#region 6-切割字符串中的所有(回车"\r\n")分割的内容
///
/// 字符串中的所有(回车"\r\n")分割的内容,且存储在数组中
///
/// 需要切割的包含(回车"\r\n")字符串
///
public static string[] GetListOfSplitEnter(string str)
{
string[] tmpStr = null;
if (!string.IsNullOrEmpty(str))
{
try
{
tmpStr = str.Split(new string[] { "\r\n" }, StringSplitOptions.None);
}
catch (Exception)
{
return null;
}
}
return tmpStr;
}
#endregion
#region 7-去除字符串中的空格
///
/// 去除字符串中的前、后和前后空格
///
/// 需要去除空格的字符串
/// 需要去除字符串空格的方向
/// 返回去除空格后的字符串
public static string RemoveFrontAndBackSpace(string str,StrDirection strDirection)
{
string strTmp = null;
if (!string.IsNullOrEmpty(str))
{
switch (strDirection)
{
case StrDirection.Front:
strTmp = str.TrimStart();
break;
case StrDirection.Back:
strTmp = str.TrimEnd();
break;
case StrDirection.FrontAndBack:
strTmp = str.Trim();
break;
default:
break;
}
}
return strTmp;
}
///
/// 去除字符串中的所有空格(" ")
///
///
///
public static string RemoveAllSpace(string str)
{
string strTmp = null;
if (!string.IsNullOrEmpty(str))
{
strTmp = str.Replace(" ","");
}
return strTmp;
}
///
/// 去除字符串中的所有转义字符(如\r, \t, \n,制表符,换页符等)为指定字符
///
/// 需要处理的字符串
/// 需要替换为指定的字符
/// 返回替换为指定字符的字符串
public static string RemoveAllEscapecharacter(string strNeedHandle,string strReplace)
{
string strTmp = null;
if (!string.IsNullOrEmpty(strNeedHandle) && !string.IsNullOrEmpty(strReplace))
{
strTmp = Regex.Replace(strNeedHandle,@"\s",strReplace);
}
return strTmp;
}
#endregion
}//Class_end
//字符串方向
public enum StrDirection
{
Front,//前
Back,//后
FrontAndBack,//前和后
}
}
②对文本内容进行根据回车(\r\n),逗号内容进行切割操作方法
///
/// 对输入的字符串进行切割
///
/// 需要处理的字符串
/// 返回处理后的字符串数组
private string[] GetMutiStrArray(string str)
{
string[] strTmp = null;
if (!string.IsNullOrEmpty(str))
{
//先处理字符是否包含所有转义字符(如\r, \t, \n,制表符,换页符等)为英文逗号字符
str = StringOrNumberOPC.RemoveAllEscapecharacter(str,",");
//先判断是否包含中文逗号(如果包含中文逗号,则将中文逗号转为英文逗号)
if (str.Contains(","))
{
str=str.Replace(",", ",");
}
//字符串是否包含空格
if (str.Contains(" "))
{
str = strIP.Replace(" ","");
}
//字符串是否同时包含英文逗号与回车
if (str.Contains(",")&&str.Contains("\r\n"))
{
str = strIP.Replace("\r\n", ",");
}
//字符串是否包含英文逗号
if (str.Contains(','))
{
strTmp = StringOrNumberOPC.GetListOfSplitComma(str);
}
//字符串是否包含回车
if (str.Contains("\r\n"))
{
strTmp = StringOrNumberOPC.GetListOfSplitEnter(str);
}
}
return strTmp;
}
直接调用向如下所示调用即可:
string strTmp = GetMutiStrArray(需要处理的字符串)