在特定字符后或最大长度后分割字符串

伏波

我想通过以下方式拆分字符串:

string s = "012345678x0123x01234567890123456789";
s.SplitString("x",10);

应该分成

012345678
x0123
x012345678
9012345678
9

例如,输入字符串应在字符“ x”或长度10之后分割(以先到为准)。

到目前为止,这是我尝试过的:

public static IEnumerable<string> SplitString(this string sInput, string search, int maxlength)
{
    int index = Math.Min(sInput.IndexOf(search), maxlength);
    int start = 0;
    while (index != -1)
    {
        yield return sInput.Substring(start, index-start);
        start = index;
        index = Math.Min(sInput.IndexOf(search,start), maxlength);
    }
}
迈克·戴蒙德

我个人不喜欢RegEx。它创建的代码很难调试,并且很难弄清您初次看时要做什么。因此,对于更长的解决方案,我将采用类似的方法。

    public static IEnumerable<string> SplitString(this string sInput, char search, int maxlength)
    {
        var result = new List<string>();
        var count = 0;
        var lastSplit = 0;

        foreach (char c in sInput)
        {
            if (c == search || count - lastSplit == maxlength)
            {
                result.Add(sInput.Substring(lastSplit, count - lastSplit));
                lastSplit = count;
            }

            count ++;
        }

        result.Add(sInput.Substring(lastSplit, count - lastSplit));

        return result;
    }

注意我将第一个参数更改为char(从字符串)。该代码可能可以进行更多优化,但是它很好且可读,对我来说更重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

某些字符计数后分割字符串

来自分类Dev

在一定数量的字符后分割字符串

来自分类Dev

固定长度后如何分割字符串数组

来自分类Dev

以特定长度分割字符串和整数python

来自分类Dev

如何在Java中的点后分割字符串

来自分类Dev

出现n位数字后分割字符串

来自分类Dev

仅在符号后分割php字符串

来自分类Dev

在最后一个空格后分割字符串

来自分类Dev

如何在Java中的点后分割字符串

来自分类Dev

在逗号后分割字符串,后跟任意数字

来自分类Dev

用户输入然后分割字符串

来自分类Dev

逗号后分割字符串,不带尾随空格

来自分类Dev

以最大字符分割字符串

来自分类Dev

字符串的长度,直到特定字符

来自分类Dev

根据长度分割字符串

来自分类Dev

根据所需长度分割字符串

来自分类Dev

字符串ActorId的最大长度

来自分类Dev

最大长度的字符串类型

来自分类Dev

字符串长度后强制换行

来自分类Dev

字符串以逗号(,)分割后,即使数组为空,字符串数组的长度也显示为1

来自分类Dev

Python Regex-在每个字符后分割字符串

来自分类Dev

如何在R中的第n个字符后分割字符串

来自分类Dev

在第一个字符后分割字符串

来自分类Dev

JavaScript计数长度特定的字符串

来自分类Dev

比较每个字符的字符串字符,按长度分割字符串也可以

来自分类Dev

分割字符串直到特定的子字符串

来自分类Dev

按特定的子字符串分割字符串

来自分类Dev

一定长度后如何使用分割字符串?

来自分类Dev

字符串分割后的条件概括