WinForm实现对文本字符串去除回车(\r\n),逗号的切割操作

一、实现功能

获取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(需要处理的字符串)

 

 

 

 

 

 

你可能感兴趣的:(Winform)