You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何组合使用substring和indexOf截取指定位置到首个逗号间的字符串

C# 字符串截取问题解决方案

需求

给定字符串:
"asTyped:fTestManager.Jobs.TestReplications.TestDataReplicationsJob,Version=1.0.0.0,"
需提取前8个字符之后、第一个逗号之前的内容,最终输出:
"TestManager.Jobs.TestReplications.TestDataReplicationsJob"

正确实现代码

方案1:索引截取法(性能最优)

string tmp = "asTyped:fTestManager.Jobs.TestReplications.TestDataReplicationsJob,Version=1.0.0.0,";
// 定位第一个逗号的索引位置
int firstCommaPos = tmp.IndexOf(',');
// 从索引9的位置开始截取,截取长度为第一个逗号位置减9
string target = tmp.Substring(9, firstCommaPos - 9);

方案2:拆分截取法(可读性更高)

string tmp = "asTyped:fTestManager.Jobs.TestReplications.TestDataReplicationsJob,Version=1.0.0.0,";
// 按逗号拆分取第一个片段,再移除前9位固定前缀
string target = tmp.Split(',')[0].Remove(0,9);

原代码问题说明

  1. 你计算的tmp.Substring(9).Length是原字符串第9位到末尾的总长度,包含了逗号后的版本号内容,本身就不是目标内容的长度
  2. 单参数的Substring方法会从传入索引一直截取到字符串末尾,你的写法最终等价于直接返回tmp.Substring(9),自然会包含不需要的后缀内容

内容的提问来源于stack exchange,提问作者aLy0sha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:36:01