gpt4 book ai didi

c# - string1 中有多少个 string2?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:16 26 4
gpt4 key购买 nike

我试图找到一种算法,该算法从用户 (string1) 获取输入,然后获取另一个 (string2),然后计算 string1 中存在多少个 string2。例如:

这里string1中有2#

string1="##"
string2="#"
answer:2

string1 中有 2 个##:(第一个索引为 0,1,第二个索引为 1,2)

string1="###"
string2="##"
answer=2

string1 中有 3 个##:(1st:index of 0,1 2nd:index of 1,2 3rd:index of 2,3)

string1="####"
string2="##"
answer=3

为了计算 # 这里我们可以简单地这样做:

string1.Length - string2.Length + 1

但我只能使算法适用于此类示例,而输入可以是任何内容。现在我需要一个算法来为我做这件事。这是适用于我的输入但不适用于所有输入的 ,y 代码。例如,如果 string2 是#a。

string string1 = "#abc##asd###12####";
string string2 = "##";
char[] str2 = string2.ToCharArray();
string[] str1 = string1.Split(str2);
string chars = "";
foreach (string s in str1)
foreach (char c in s)
chars += c;
//Result for chars are:a, b, c, a, s, d, 1, 2
string[] splits = string1.Split(chars.ToCharArray());
//Result for splits are:#, ##, ###, ####
int sum = 0;
for (int i = 0; i < splits.Length; i++)
{
if (splits[i].Length<string2.Length)
continue;
else
sum += splits[i].Length - string2.Length + 1;
}
Console.WriteLine(sum);

在我的算法中,我将 string1 与 string2 字符分开,然后计算由 split 方法创建的 strings[]。

我已经知道我的算法是完全错误的,但我还是无法解决。我只是把代码用来展示我的尝试。
如果你在答案中写算法,那就太好了。我对 lambda 和 linq 也有一点了解,所以如果您可以通过 lambda 或 linq 或 func 或表达式来解决这个问题,请解释一下。

最佳答案

这是一个工作代码:

string string1 = "#abc##asd###12####";
string string2 = "##";
List<int> indexes = new List<int>();
int index = -1;
while((index = string1.IndexOf(string2, index + 1)) >= 0)
{
indexes.Add(index);
}

Console.WriteLine(indexes.Count);

关于c# - string1 中有多少个 string2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com