我想查看一个字符串中有多少次字符串出现。例如,我想查看此段中2018年发生的次数:
zaeazeaze2018
azeazeazeazeaze2018azezaaze
azeaze4azeaze2018
在这种情况下,它发生了3次。
我尝试了以下代码
但是问题是它总是返回0
我在这里找不到错误:
public static string count(string k)
{
int i = 0;
foreach(var line in k)
{
if (line.ToString().Contains("Bestellung sehen"))
{
i++;
i = +i;
}
}
return i.ToString();
}
答案 0 :(得分:1)
使用此:
string text = "Hello2018,world2018\r\nWe have five 2018 here\r\n2018is coming2018"
int Counter = Regex.Matches(text, "2018").Count;
Console.WriteLine(Counter.ToString()); //write : 5
答案 1 :(得分:1)
您可以使用Regular Expressions处理此类情况。正则表达式为您在字符串中进行模式匹配提供了很好的灵活性。对于您而言,我已经使用正则表达式为您准备了示例代码:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string str="zaeazeaze2018azeazeazeazeaze2018azezaazeazeaze4azeaze2018";
string regexPattern = @"2018";
int numberOfOccurence = Regex.Matches(str, regexPattern).Count;
Console.WriteLine(numberOfOccurence);
}
}
工作示例:https://dotnetfiddle.net/PGgbm8
如果您会注意到行string regexPattern = @"2018";
,这将设置模式以从字符串中查找所有2018
的出现。您可以根据需要更改此模式。一个简单的例子是,如果我将模式更改为string regexPattern = @"\d+";
,它将给我4作为输出。这是因为我的模式将匹配字符串中所有出现的数字。
答案 2 :(得分:1)
这可以使用带有以下内容的正则表达式来实现:
using System.Text.RegularExpressions;
public static int count(string fullString, string searchPattern)
{
int i = Regex.Matches(fullString, searchPattern).Count;
return i;
}
例如,以下代码以int而不是字符串的形式返回2:
count("asdfasdfasfdfindmeasdfadfasdasdfasdffindmesadf","findme")
我发现对于大多数用例来说,这已经足够快了。
答案 3 :(得分:-1)
str是您的String
方法中的count
str2是您的子字符串,Bestellung sehen
int n = str2.length
int k = 0;
for(int i=0;i < str.length; i++){
if(str.substring(i,i+n-1)){
k++;
if(i+n-1 >= str.length){
break;
}
}
}
return k.toString()