【问题标题】:How to split a string by multiple chars? [duplicate]如何将字符串拆分为多个字符? [复制]
【发布时间】:2017-03-24 04:37:24
【问题描述】:

我有一个这样的字符串:string ip = "192.168.10.30 | SomeName"。 我想用| 拆分它(包括空格。不幸的是,使用此代码是不可能的:

string[] address = ip.Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries);

因为这导致"192.168.10.30 "。我知道我可以将.Trim() 添加到address[0],但这真的是正确的方法吗?

只需在搜索模式中添加空格 (' | ') 即可获得

无法识别的转义序列

【问题讨论】:

  • 您可以在此模式中使用正则表达式。 (?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) *\| *(?<name>\S*)。例如获取 ip write regex.Match(input).Groups["ip"] 并获取 name 写 name 而不是 ip

标签: c# .net string split string-operations


【解决方案1】:

这可能对你有用

string[] address = ip.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToArray();

【讨论】:

    【解决方案2】:
        String ip = "192.168.10.30 | SomeName";
        ip=ip.replaceAll(" ", "");
        String[] address = ip.split("\\|");
    

    这应该会给你想要的结果。它会在拆分之前重播所有空格

    【讨论】:

      【解决方案3】:

      可以按字符串分割,不能按字符分割:

      var result = ip.Split(new string[] {" | "}, StringSplitOptions.RemoveEmptyEntries);
      

      【讨论】:

      • char[] { '|',' '} 方法更健壮,因为它涵盖了缺少空格和空条目的情况(这可能与 OP 相关,也可能不相关,但值得了解)
      【解决方案4】:

      Split 方法接受字符数组,因此您也可以在该数组中指定第二个字符。由于您使用了RemoveEmptyEntries,这些空格将从最终结果中删除。

      这样使用:

       string[] address = ip.Split(new char[] { '|',' '}, StringSplitOptions.RemoveEmptyEntries);
      

      你会得到数组中的两个项目

      "192.168.10.30"SomeName

      【讨论】:

        猜你喜欢
        • 2012-03-31
        • 2011-11-02
        • 2017-08-21
        • 2023-02-06
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 2019-06-11
        • 2021-12-07
        相关资源
        最近更新 更多