c# - 如何拆分字符串,其中一个字符是分隔符,另一个是内容
问题描述
我有一个字符串,其中包含两个特殊字符:"a"
和"x"
(如"aaxaxbcdxbcdexaxdefxdefa"
),我想根据以下规则对其进行拆分:
- 如果
"a"
遇到 an,结果字符串将包含 this 作为单个字符。 - 如果
"x"
遇到 an ,这将用作分隔符。
所以,我想要这样:
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(...)
不会从最终字符串中删除分隔符的?
有人有想法吗?
解决方案
保持简单:替换每个并"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
推荐阅读
- sql - 如何将此过程复制到 CQL (Cassandra)?
- javascript - Feathers js - 如何获取 config/default.json 中的数据
- javascript - 用于控制 Google Ads 中每次安装费用的 Google Ads 脚本
- node.js - 无法读取未定义节点的属性“价格”
- google-sheets - 如何编写条件查询公式?
- java - Ant Junit 继续提供 ClassNotFoundException
- c# - EF Core 事务 - 我做对了吗?
- kubernetes - Is it possible to route requests from inside cluster to external endpoint via specific node?
- c# - EFCore 中带有动态 where 子句的 LINQ
- python - Gekko Solver 不满足 Constraints 给出错误的解决方案