比如,我有个一个字符串"jintiantianqihehaohan",我希望知道其中有几个"an",如何能够得到?

解决方案 »

  1.   

    string str = "jintiantianqihehaohan"; 
    char a; 
    char[]chr = str.tochararray(); 
    int len; 
    for (int i = 0; i <= chr.length - 1; i++) 

     if (chr(i) == 'a')
     { 
       a = 'a'; 
     } 
     if (a == 'a' && chr(i) == "n") 
     { 
       len += 1; 
     } 

    return len;
      

  2.   

    string yourStr = "jintiantianqihehaohan";
    string regexStr = "an";int count = Regex.Matches(yourStr, regexStr).Count;
      

  3.   

    string s = "jintiantianqihehaohan";
    int m = s.Length;
    s = s.Replace("an",'');
    return m-s.Length;
      

  4.   

    string s = "jintiantianqihehaohan";
    int m = s.Length;
    s = s.Replace("an",'');
    return m-s.Length;
      

  5.   

    我的想法:
    比如字符串:a[]="jintiantianqihehaohan",要知道有多少的an,
    先取得an的长度,获得原字符串的长度
    按照an的长度来获取要比较的值。
    按照本例:a[0]+a[1],a[1]+a[2],a[2],a[3]......以此来比较
      假社a[i]+a[i+1]==an,那么,下一个判断的字符串就是a[i+2]+a[i+3]。
    我的想法是可以实现的,可能说的不够明白。呵呵.....没有时间写代码。
      

  6.   

    string s = "jintiantianqihehaohan";
    int m = s.Length;
    s = s.Replace("an",'');
    return m-s.Length;
      

  7.   

    jiezhi的方法很棒,多谢!
    也谢谢各位的帮助,散分。
      

  8.   

    倒,
     mobydick(敌伯威|我排著队拿著爱的号码牌) ( ) 信誉:100  2005-03-11 11:02:00  得分: 0  
     
     
       string yourStr = "jintiantianqihehaohan";
    string regexStr = "an";int count = Regex.Matches(yourStr, regexStr).Count;
      
     
    这个最好
      

  9.   

    非常抱歉,KissXYL(挚爱凝忆)所说的很对,mobydick(敌伯威|我排著队拿著爱的号码牌)的方法很好,
    对于正则表达式方面的东西,我几乎没有涉及,应该给分的。随便说一点:
    如果mobydick注明了using System.Text.RegularExpressions;,我一定会发现这个正确方法的。还有,由于搜索的字符串可能长度不为1,所以应当最终的个数应当除以搜索字符串的长度。
    即:
    SourceString = "jintiantianqihehaohan;";
    TargetString = "an";int DataCount = SourceString.Length;
    SourceString = SourceString.Replace(TargetString, "");

    return (DataCount - SourceString.Length) / TargetString.Length;