是否有一种方法可以从字符串中删除一定数量的字符,将删除的字符放入单独的字符串中并使原始x
字符数量更短?
我需要将一个字符串解析成10个单独的字符串,每个字符串长10个字符。我希望能够像这样做一些简单的事情,但我不知道在C#中是否有类似这样的方法
string[] errorCodes = new string[10];
for (int i = 0; i < errorCodes.Length; i++)
{
errorCodes[i] = retrievedMessage.removeFromSubstring(0, 10);
}
答案 0 :(得分:1)
修改强>
现在经过测试,似乎对我来说很好用
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();
答案 1 :(得分:1)
你可以试试这个:
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);
}
答案 2 :(得分:1)
这应该对你有用
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
}
答案 3 :(得分:0)
与其他答案相同的基本概念,但稍微检查变量字符串长度。如果你知道你的字符串长度总是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的长度进行实例化,因此如果retrieveMessage的长度为&lt; = 90,则该字符串将为空字符串。如果您期望变长,则最好使用{{1}而不是List<string>
。