相关疑难解决方法(0)

解析没有字符串拆分

这是其他问题讨论的衍生产品.

假设我必须解析大量非常长的字符串.每个字符串包含一个double由空格分隔的s 序列(当然是文本表示).我需要将doubles 解析成一个List<double>.

标准的解析技术(使用string.Split+ double.TryParse)似乎很慢:对于每个我们需要分配字符串的数字.

我试图使它成为旧C类的方式:计算包含数字的子串的开始和结束的索引,并在"就地"解析它,而不创建额外的字符串.(见http://ideone.com/Op6h0,下面显示了相关部分.)

int startIdx, endIdx = 0;
while(true)
{
    startIdx = endIdx;
    // no find_first_not_of in C#
    while (startIdx < s.Length && s[startIdx] == ' ') startIdx++;
    if (startIdx == s.Length) break;
    endIdx = s.IndexOf(' ', startIdx);
    if (endIdx == -1) endIdx = s.Length;
    // how to extract a double here?
}
Run Code Online (Sandbox Code Playgroud)

有一个重载string.IndexOf,只在给定的子字符串中搜索,但是我找不到从子字符串解析double的方法,而没有先实际提取该子字符串.

有没有人有想法?

c# parsing

6
推荐指数
1
解决办法
1191
查看次数

标签 统计

c# ×1

parsing ×1