shell 计算字符重复出现的次数 abdaaccabca 求a重复出现的次数 请问除了sed 和 wc 的方法得到外 还有啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 计算字符重复出现的次数 abdaaccabca 求a重复出现的次数 请问除了sed 和 wc 的方法得到外 还有啥相关的知识,希望对你有一定的参考价值。

awk方法:
将a设为字段分隔符,字符串被分割为6个字段,就说明有5个a。
numField=`echo abdaaccabca | awk -Fa 'print NF'`
num_a=`expr $numField - 1`
参考技术A awk也行哈 参考技术B echo abdaaccabca | sed 's/./&\n/g' | grep -c a

计算字符串在字符串中出现的次数[重复]

我只是有一个看起来像这样的字符串:

“假”,“假”,“假”,“假”,“假”

我想要做的就是计算字符串“true”出现在该字符串中的次数。我觉得答案就像String.CountAllTheTimesThisStringAppearsInThatString(),但由于某种原因我无法弄明白。救命?

答案
Regex.Matches(input, "true").Count
另一答案

可能不是最有效的,但认为这是一种巧妙的方式。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(CountAllTheTimesThisStringAppearsInThatString("7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false", "true"));
        Console.WriteLine(CountAllTheTimesThisStringAppearsInThatString("7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false", "false"));

    }

    static Int32 CountAllTheTimesThisStringAppearsInThatString(string orig, string find)
    {
        var s2 = orig.Replace(find,"");
        return (orig.Length - s2.Length) / find.Length;
    }
}
另一答案

你的正则表达式应该是true来解决Casper带来的“误解”问题。完整的解决方案如下所示:

string searchText = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
string regexPattern = @"true";
int numberOfTrues = Regex.Matches(searchText, regexPattern).Count;

确保System.Text.RegularExpressions命名空间包含在文件的顶部。

另一答案

如果字符串可以包含“miscontrue”之类的字符串,则会失败。

   Regex.Matches("7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false", "true").Count;
另一答案

有了Linq ......

string s = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
var count = s.Split(new[] {',', ':'}).Count(s => s == "true" );
另一答案

在这里,我将使用LINQ过度设计答案。只是表明烹饪鸡蛋的方法不仅仅是'n'方式:

public int countTrue(string data)
{
    string[] splitdata = data.Split(',');

    var results = from p in splitdata
            where p.Contains("true")
            select p;

    return results.Count();
}
另一答案

这样做,请注意你必须为'test'定义正则表达式!!!

string s = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
string[] parts = (new Regex("")).Split(s);
//just do a count on parts

以上是关于shell 计算字符重复出现的次数 abdaaccabca 求a重复出现的次数 请问除了sed 和 wc 的方法得到外 还有啥的主要内容,如果未能解决你的问题,请参考以下文章

计算字符串中子字符串的所有非重叠出现次数[重复]

计算字符串在字符串中出现的次数[重复]

c# - 如何计算ReadOnlyCollection字段中字符串的出现次数[重复]

用SQL计算同一个字符(汉字、字母、数字、表情、符号)连续重复出现的次数

在 linux bourne shell 中:如何计算文件中特定单词的出现次数

用SQL写一个重复字符串一定次数的函数Repeat 。