zoukankan      html  css  js  c++  java
  • C#中使用string.Split 用字符串分隔

    string.Split给我们提供了非常灵活的使用方式, 但是如果使用不当, 会造成错误, 最近在做code review时, 看到大部分人这么使用:

                string s = "A|B|:|C:D";

                string[] ss = s.Split("|:|".ToCharArray());

                //ss[0]: A

                //ss[1]: B

                //ss[2]:

                //ss[3]:

                //ss[4]: C

                //ss[5]: D

    其实他的本意是使用”|:|”将字符串分开的, 目标是为了得到数组: “A|B” 和 “C:D”, 但是没有直接找到Split(string)的重载, 所有就是用了ToCharArray(), 很显然, 得到的结果是错误的.

    正确的用法为:

                string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.None);

                //ss1[0]: A|B

                //ss1[1]: C:D

    后一个参数, 是标志是否自动remove empty的数据. 例如: "A|B|:|C:D|:|" 做分割时, 会返回三个数组, 该数组的最后一个元素是空"", 如果我们想过滤掉这些空的元素, 可以使用参数: StringSplitOptions.RemoveEmptyEntries 即: string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries);

    例子:

                s = "A|B|:|C:D|:|";

                string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries);

                //ss1[0]: "A|B"

                //ss1[1]: "C:D"

                ss1 = s.Split(new[] { "|:|" }, StringSplitOptions.None);

                //ss1[0]: "A|B"

                //ss1[1]: "C:D"

                //ss1[2]: ""
  • 相关阅读:
    虚拟机配置桥接网络以及使用mobaxterm连接虚拟机
    maven依赖包问题2
    47.火狐浏览器登录过全球服务器之后,切换回本地服务器登录失败解决方法
    博客园美化
    vue拼图验证(vue-puzzle-vcode)
    vue使用axios
    vue中使用swiper
    VUE安装并配置
    vue中router-view不显示
    vue打包后空白
  • 原文地址:https://www.cnblogs.com/yuanws/p/2282476.html
Copyright © 2011-2022 走看看