使用substring从字符串中删除单词

本文关键字:删除 单词 字符串 substring 使用 | 更新日期: 2023-09-27 18:17:00

是否有一种方法可以从字符串中删除一定数量的字符,将删除的字符放入单独的字符串中,并使原始x的字符数量更短?

我需要将一个字符串解析为10个单独的字符串,每个字符串长10个字符。我想能够做这样简单的事情,但我不知道是否有这样的方法在c#

中工作
string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    errorCodes[i] = retrievedMessage.removeFromSubstring(0, 10);
}

使用substring从字符串中删除单词

你可以试试:

string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    errorCodes[i] = retrievedMessage.Substring(0, 10);
    retrievedMessage = retrievedMessage.Substring(10);
}

retrievedMessage = retrievedMessage.Substring(10);行将有效地从原始字符串中删除前10个字符。这样在每次迭代中,你将能够使用前10个字符并将它们分配给errorCodes[i]

也可以尽量避免使用子字符串:

string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    errorCodes[i] = retrievedMessage.Substring(i*10, 10);
}

编辑

现在测试,似乎对我很好

        var errorCodes = "longstringgggggggggggggggggggggggggg";
        var count = 10;
        List<string> s = new List<string>();
        for (int i = 0; i < errorCodes.Length; i += count)
        {
            if (i + count > errorCodes.Length)
                count = errorCodes.Length - i;
            s.Add(errorCodes.Substring(i, count));
        }
        foreach (var str in s)
            Console.WriteLine(str);
        Console.ReadLine();

应该可以了

string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    errorCodes[i] = retrievedMessage.Substring(10*i, 10);
}

这是一个选项,将从string retrievedMessage

中删除
string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    //option to remove from string
    errorCodes[i] = retrievedMessage.Substring(0, 10);
    retrievedMessage = retrievedMessage.Remove(0,10);  //will remove from string
}

与其他答案相同的基本概念,但对可变字符串长度进行了一些检查。如果你知道你的字符串的长度总是100个字符,那么使用一个更简单的答案。

string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
    int startIndex = i * 10;
    if (retrievedMessage.Length > startIndex)
    {
        int length = 10;
        if (retrievedMessage.Length < (startIndex + length))
        {
            length = retrievedMessage.Length - startIndex;
        }
        errorCodes[i] = retrievedMessage.Substring(startIndex, length);
    }
}

注意:由于errorCodes总是以10的长度实例化,因此如果retrievedMessage的长度为<= 90,则将具有空字符串。如果您希望使用可变长度,最好使用List<string>而不是string[]