我需要执行Search and Replace
子数组。这是我的代码
Dim IntegerArray() As Int32 = {1, 0, 2, 0, 0, 0,
1, 0, 2, 0, 0, 0,
1, 0, 2, 0, 0, 0,
0, 0, 0, 0}
具体来说,我需要搜索数组中的2, 0, 0, 0, 1
元素并将每个元素替换为5
这是阵列的图片
如何执行search and replace
工作?
注意:我尝试循环遍历数组,但识别5个元素值非常棘手,到目前为止我仍然无法使其工作。是否有任何.NET内置功能能够完成工作或任何智能解决方案?
答案 0 :(得分:3)
myArray是整数数组
解决方案
String.Join(";", myArray).Replace("2;0;0;0;1", "5;5;5;5;5").Split(';').Select(n => Convert.ToInt32(n)).ToArray()
说明的
第3步:将字符串转换回数组
Split(';').Select(n => Convert.ToInt32(n)).ToArray()
答案 1 :(得分:2)
internal int[] Solve(int[] input, int[] pattern, int[] replace)
{
var result = new List<int>();
for (int i = 0; i < input.Length; i++)
{
bool match = true;
for (int j = 0; j < pattern.Length; j++)
{
if ((i + j >= input.Length) || (input[i + j] != pattern[j]))
{
match = false;
break;
}
}
if (match)
{
foreach (var item in replace)
{
result.Add(item);
}
i += (pattern.Length - 1);
}
else
{
result.Add(input[i]);
}
}
return result.ToArray();
}