首页 > 解决方案 > 如何拆分字符串,其中一个字符是分隔符,另一个是内容

问题描述

我有一个字符串,其中包含两个特殊字符:"a""x"(如"aaxaxbcdxbcdexaxdefxdefa"),我想根据以下规则对其进行拆分:

所以,我想要这样:

Stretched out input:
   a    a x  a x  bcd x  bcde x  a x  def x  def    a

{ "a", "a", "a", "bcd", "bcde", "a", "def", "def", "a" }

显然,我可以使用它进行拆分,基于"x"

string infoList[] = input_string.Split(new char[] {"x"}, StringSplitOptions.RemoveEmptyEntries);

但是这个故事"a"让我想到了扩大已经存在的数组(我担心它可能会导致性能问题)。最重要的是,我相信应该有一些单线器(而不是编写我自己的for循环)。

编辑
简单地说:是否有一个string.Split(...)不会从最终字符串中删除分隔符的?

有人有想法吗?

标签: c#arraysstring

解决方案


保持简单:替换每个并"a""xax"与您相同的方式拆分:

var input_string = "aaxaxbcdxbcdexaxdefxdefa";
input_string = input_string.Replace("a", "xax");
var infoList = input_string.Split(new char[] {'x'}, StringSplitOptions.RemoveEmptyEntries);
    
Console.WriteLine(string.Join(", ", infoList));

这输出

a, a, a, bcd, bcde, a, def, def, a

推荐阅读