c# - 删除“|”之间的字符串 和“,”在 C# 中的字符串生成器中
问题描述
我在 Windows7 中使用 VS2019。我"|"
想删除","
.StringBuilder
也就是说,我想StringBuilder
从
"578.552|0,37.986|317,38.451|356,23"
到
"578.552,37.986,38.451,23"
我尝试过Substring
但失败了,我可以使用什么其他方法来实现这一点?
解决方案
如果你有一个巨大 StringBuilder
的,这就是为什么将它转换为String
并应用正则表达式不是选项,你可以尝试实现有限状态机(FSM):
StringBuilder source = new StringBuilder("578.552|0,37.986|317,38.451|356,23");
int state = 0; // 0 - keep character, 1 - discard character
int index = 0;
for (int i = 0; i < source.Length; ++i) {
char c = source[i];
if (state == 0)
if (c == '|')
state = 1;
else
source[index++] = c;
else if (c == ',') {
state = 0;
source[index++] = c;
}
}
source.Length = index;
推荐阅读
- python - Python 正则表达式理解边界“\b”
- c - C中的链接列表和释放内存
- regex - 如何使用 str.contains 在正则表达式中获取模式匹配列表?
- wordpress - 在 WordPress 中导入演示数据的最佳方法是什么
- java - Junit5 和 Maven:@BeforeAll 初始化方法未被调用
- web-scraping - 如何抓取数据值?
- php - 使用 PHP 的内置服务器在 Winows 上显示具有绝对路径的图像
- scala - 使用松散耦合实现新功能
- android - Android 即时和可安装应用程序设置不同的版本代码
- javascript - 使用 Google Web 应用 JavaScript 将 JSON 对象发送到 Telegram 机器人