我正在寻找最短,最简单,最优雅的方法来计算给定字符串中大写字母的数量。最简单,最简单的方法来计算字符串中的大写字母与PHP?
回答
function count_capitals($s) {
return strlen(preg_replace('![^A-Z]+!', '', $s));
}
cletus不能写代码。它从哪里来的? – 2014-12-22 14:29:34
不适用于各种语言的特殊utf-8字符。 – 2017-11-04 20:30:48
这不是最短的,但它可以说是最简单的,因为正则表达式不必执行。通常我会说这应该会更快,因为逻辑和检查很简单,但是PHP总是让我感到惊讶,因为与其他人相比,某些事情的速度和速度有多快。
function capital_letters($s) {
$u = 0;
$d = 0;
$n = strlen($s);
for ($x=0; $x<$n; $x++) {
$d = ord($s[$x]);
if ($d > 64 && $d < 91) {
$u++;
}
}
return $u;
}
echo 'caps: ' . capital_letters('HelLo2') . "\n";
就像在C! – alex 2010-11-02 02:04:38
函数* count \ _capitals *到目前为止速度更快。使用非常短的字符串* count \ _capitals *只是更快一些,但是第一段“Lorem ipsum ...”运行3000次迭代需要0.03秒,而通过函数* capital \ _letters运行相同字符串需要1.8秒。 3000次。 – 2010-11-02 02:03:35
我给另一种解决方案,也许不是优雅,但有所帮助:
$mixed_case = "HelLo wOrlD";
$lower_case = strtolower($mixed_case);
$similar = similar_text($mixed_case, $lower_case);
echo strlen($mixed_case) - $similar; // 4
似乎这种解决方案即使对大写字母和变音符号也能工作。 +1 – LittleTiger 2016-10-24 04:33:13
乔治Garchagudashvili解决方案是惊人的,但如果小写字母包含变音符号或重音失败。
所以我做了一个小的修复,以提高自己的版本,与小写字母加剧也适用:
public static function countCapitalLetters($string){
$lowerCase = mb_strtolower($string);
return strlen($lowerCase) - similar_text($string, $lowerCase);
}
- 1. 什么是计算字符串中字符频率最简单的方法?
- 2. 最简单的方法来搜索字符串中的Teradata
- 3. 简单的方法来计算PHP中的字符串中的元音?
- 4. 最简单的方法来检查字符串是否为URL
- 5. 最简单的方法来替换子字符串
- 6. 最简单的方法来将字符串分割成键/值
- 7. 最简单的假日计算方法?
- 8. 最简单的方法来更改字体和字体大小
- 9. 最简单的方法来总计列?
- 10. 简单的方法来搜索字符串的字符串
- 11. Java:获取字符串中最后一个单词的最简单方法
- 12. 获取字符串中数值列表的最简单方法
- 13. 解析C中字符串的最简单方法是什么?
- 14. 在Vim中交换两个字符串的最简单方法?
- 15. 在PHP中引用多字节字符串的最简单方法是什么?
- 16. 枚举utf-8字符串最简单的方法
- 17. VBScript:格式化字符串的最简单方法是什么?
- 18. 解析JSON字符串的最简单方法
- 19. 从RS-232端口读取字符串的最简单方法?
- 20. 计算auto_increment接近其最大值的简单方法?
- 21. 最简单的方法来排序在Javascript中的字符串列表?
- 22. Java:用随机字符串替换字符串的最简单方法
- 23. 最简单的方法来推算列意味着大数据
- 24. 简单的方法来字符串资源与数据绑定
- 25. 最简单的方法来匹配字符串数组在Perl中搜索?
- 26. 最简单的方法来从URL中读入一个字符串在.NET
- 27. 简单的方法来计算字符串的发生和按它们排序
- 28. 计算器键盘算法最简单的方法是什么?
- 29. 什么是最简单的方法来保存服务器上的字符串
- 30. 在jQuery中使用.keyup计算字符的简单方法
如果你想欺骗:strlen的(strtoupper($ STR));) – 2009-10-13 02:47:37
最简单并且最优雅!= code高尔夫 – 2009-10-13 02:52:37
str_replace(范围('A','Z'),'',$ str,$ num_caps); echo $ num_caps; – GZipp 2009-10-13 05:00:19