c# - C#:从带有分隔符的字符串中提取项目的有效方法
问题描述
解析大型分隔字符串的有效方法是什么,以便我可以只访问分隔集中的一个元素,而不必存储涉及的其他子字符串?
示例字符串:“1,2,3,4,....,21,22,23,24”,我的目标是仅提取元素 22,而不必像使用拆分时那样存储其余数字() 方法。
不是这个的副本。
也不是建议的副本。就我而言,我特别在有限字符串中寻找一个精确的元素。这与他们试图从无限长的字符串中提取前几次出现的情况有很大不同。我的问题似乎要简单得多。除了我感兴趣的一个元素之外,我不想存储任何额外的标记/数组元素。
解决方案
我为你的例子做了一个快速的算法。索引是从零开始的,所以0
如果你需要第一项,你应该通过。您可以更改分隔符字符或将其作为参数提供。
简短说明:我们遍历字符串的所有字符并跳过所有项目,直到进入请求的项目。之后,我们找到下一个分隔符并返回整个字符串的一部分,如果没有找到任何分隔符,则返回字符串的其余部分。
public static string GetItemByIndex(string line, int index)
{
for (var i = 0; i < line.Length; i++)
{
if (index == 0)
{
for (int j = i; j < line.Length; j++)
{
if (line[j] == ',')
{
return line.Substring(i, j - i);
}
}
return line.Substring(i, line.Length - i);
}
if (line[i] == ',' && index != 0)
{
index--;
}
}
return null;
}
推荐阅读
- reactjs - 2020 年的 React Redux Typescript 令人困惑
- oauth-2.0 - redirect_uri_mismatch 无缘无故
- flutter - 我如何使用颤振创建和维护会话
- django - Django:将条目中的数据用于许多视图功能
- reactjs - 运行 npx 以启动 Strapi 应用程序时,我收到与我的节点版本相关的相同错误
- functional-programming - [R2DBC-Spring-Data-kofu]:在标准 API 中表达不同
- python - Python,在列表列表中搜索给定坐标最近匹配的索引
- python - 为什么 Python 会忽略这些操作?
- kubernetes-pod - 我们可以从正在运行的 kubernetes pod 中卸载卷吗
- python-3.x - 如何从python的循环外部循环访问多个图像对象?