我有一个字符串“Bbcdefcgh!!” 我想计算不同的重复字符。解决方案应将大写和小写字符视为不同的字符,并处理字母数字和特殊字符。
例如:给定一个字符串“Bbcdefcgh!!” 该函数应该返回 2('c' 和 '!')
class DuplicateChar
{
public function test1()
{
return $this->duplicateCharacters("Bbcdefcgh!!");
}
public function duplicateCharacters($input)
{
//
}
}
$o = new DuplicateChar;
echo $o->test1();
您可以在这里使用一些很酷的功能:
$str = 'Bbcdefcgh!!';
$arr = str_split($str);
$data = array_filter(array_count_values($arr), function($el)
{
return ($el > 1);
});
echo '<pre>'. print_r($data, 1) .'</pre>';
我们使用str_split
将字符串拆分为一个数组,然后我们使用过滤值array_count_filter
以仅获取具有超过 1 个重复项的项目。
参考:
编辑:使用 count_chars
正如 NigelRen 所指出的,这可以使用count_chars()
:
count_chars — 返回有关字符串中使用的字符的信息
$data = "Two Ts and one F.";
foreach (count_chars($data, 1) as $i => $val)
{
echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句