找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1649|回复: 0
打印 上一主题 下一主题

如何取得中文字符串中出现次数最多的子串

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 08:12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            直接上代码,子串的长度可自己设置(比如连续4个字符的或5个字符的)。
[U]复制代码[/U] 代码如下:
$str ='我是中国人我是外国人我是韩国人我是美国人我是中国人我是英国人我是中国人我是外国人';
Count_string($str,5);
function Count_string($sstr,$length)
{
$cnt_tmp = 0;
$cnt = 0;
$str = '';
$str_tmp = array();
$str_arr = array();
mb_internal_encoding("gb2312");
$max_length = (mb_strlen($sstr)-$length);
//取得子串集
for($i=0;$i$value)
{
  $cnt_tmp = mb_substr_count($sstr,$value);
  if($cnt_tmp>=$cnt)
  {
   $cnt = $cnt_tmp;
   $str_arr[$value] = $cnt;   
  }
}
//处理出现多重结果
foreach($str_arr as $key=>$value)
{
  if($value == $cnt)
  {$str .=$key."
";}
}
echo '出现最多的子串是:
'.$str.'
出现次数:'.$cnt;
}
            
            
您可能感兴趣的文章:
  • php中计算未知长度的字符串哪个字符出现的次数最多的代码
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端