我正在尋找最短,最簡單,最優雅的方法來計算給定字符串中大寫字母的數量。最簡單,最簡單的方法來計算字符串中的大寫字母與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