C#小白之路冲丫!

C#小白之路

  • [C#]关于对文本中符号的一些处理
    • 场景一的解决方法
    • 场景二的解决方法

[C#]关于对文本中符号的一些处理

场景1
在开发过程中,我们经常会遇到有读数据库,取出字段中对应的字符串,但是字符串中会存在许多标点符号例如:

str=“year;month;day;”;

这是字段中插入了多组数据,使用特殊符号隔开。而我们在使用这些数据时又不得不将他们分开,单独取出字符串中的单个数据。
场景2
我们获取到了上文str字符串,可是在我们转存时,其他客户端又不接收以“;”作为分割符的上传方式,需要转换为”,“或者其他符号。

场景一的解决方法

其实在C#中,开发人员已经考虑到了这一点并且帮助我们做好了这样的方法:
Split函数
这个函数中包含两个参数,第一个参数是占位参数,即占多少数组位置,第二个参数是筛选符号。

demo.Split(params char[] separator)

怎么用呢?
比如我们拿到了一个字符串str

string str = "years;months;days;time;"
string str2 = "years;months;days;time"
//注意,str与str2的区别在于串内容结尾是否包含一个”;“

现在要把其中的内容分割出来,分割为years months days time
首先定义一个string类型的数组

string[] a = str.Split[new char[1] { ';' }];
string[] b = str.Split[new char[1] { ';' }];

那么问题来了,取好后的a b相同吗?
自然是不同的。a.Length>b.Length
因为a在取时以";“为节点分割,str的末尾存在”;"符号,因此末尾符号后多取了一个空值。

/*这里直接给出完整示例,大家可以运行一试*/
static void Main(string[] args)
        {
            try
            {
                string b = "a;s;d;f;";
                string e = "a;s;d;f"; 
                string[] a = b.Split(new char[1] { ';' });
                string[] h = e.Split(new char[1] { ';' });
                int c = a.Length;
                int i = h.Length;
                Console.WriteLine(c);
                Console.WriteLine(i);
                Console.WriteLine(a[3]);
                
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
            }
        }

场景二的解决方法

这个场景就非常好解决啦,现在从上头获取了一个字符串

string str = "year;month;day;";

然后我们要转发给下家,下家要求:我们只接受这样格式的!

string str_nextstep = "year,month,day,";

哎呀这不诚心找不痛快吗!但既然需求提了,咱就给解决吧。这个操作就非常简单了!我们用到两个很熟悉的方法:

Contains()和 Replace()
Contains(a),用于判断字符中是否包含(注意,不是匹配,是包含)a字符
Replace(c,d),用于更改,将字符中的c更改为d

当然了我们做程序要严谨嘛,所以有必要使用Contains来判断一下上家给的字符串包不包含特殊符号

string taskinfo = "a;b;c;d;";
//查看是否包含该特殊符号
 if (taskinfo.Contains(";"))//将提取出来带;号的更改为,上传
  {
      taskinfo = taskinfo.Replace(";", ",");
  }
  Console.Writeline(taskinfo);

运行一下看看,是不是变成了"a,b,c,d,"?

你可能感兴趣的:(C#小白,c#)