C#小白之路冲丫!

本文介绍了在C#中如何处理字符串中的符号,包括使用Split函数按分隔符分割字符串以及如何通过Contains和Replace方法转换特殊符号。示例展示了针对以分号分隔的字符串进行分割和转换为逗号分隔的过程。
摘要由CSDN通过智能技术生成

[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,"?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值