C#实现一个函数,输入一个字符串和一个数字数组为:“00FFFF241105” 和{6,4,2},请根据数字数组的元素作为长度进行字符串分割,输出为字符串数组{“00”,“FFFF”,“241105”,}
时间: 2024-11-27 20:09:27 浏览: 5
在C#中,你可以使用`string.Split()`方法结合数组索引来实现这个功能。这个方法会根据指定的分隔符将字符串分割成子串,并返回一个包含这些子串的新字符串数组。如果省略分隔符,则默认按照空格、制表符、换行符等空白字符进行分割。
以下是实现此功能的一个示例函数:
```csharp
using System;
using System.Linq;
public static string[] SplitString(string input, int[] lengths)
{
if (input.Length == 0 || lengths.Sum() > input.Length)
{
throw new ArgumentException("输入字符串不足或分割长度总和大于原字符串长度");
}
// 确保数组元素和字符串长度匹配
if (lengths.Length != input.Distinct().Count())
{
throw new ArgumentException("输入字符串和长度数组不匹配");
}
string[] result = new string[lengths.Length];
int start = 0;
for (int i = 0; i < lengths.Length; i++)
{
int length = lengths[i];
result[i] = input.Substring(start, length);
start += length;
}
return result;
}
// 示例
string input = "00FFFF241105";
int[] lengths = { 4, 4, 5 };
string[] splitArray = SplitString(input, lengths);
Console.WriteLine(string.Join(", ", splitArray)); // 输出:"00, FFFF, 241105"
阅读全文