나는 주어진 문자열에서 대문자의 수를 세는 가장 짧고, 가장 단순하고 가장 우아한 방법을 찾고있다.php로 문자열의 대문자를 계산하는 가장 간단한, 가장 짧은 방법은 무엇입니까?
답변
function count_capitals($s) {
return strlen(preg_replace('![^A-Z]+!', '', $s));
}
cletus cant write code. 그것은 어디서 왔는가? –
다양한 언어의 특수 UTF-8 문자는 작동하지 않습니다. –
가장 짧지는 않지만 정규식을 실행할 필요가 없으므로 틀림없이 가장 간단합니다. 일반적으로 로직과 수표가 단순하기 때문에 이것이 더 빠를 것이라고 말하고 싶지만, 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
함수 * count \ _capitals *가 훨씬 빠릅니다. 매우 짧은 문자열 * count \ _capitals *는 조금 빠르지 만 "Lorem ipsum ..."의 첫 번째 단락과 함께 3000 초 반복 실행하는 데는 0.03 초이며 함수 * capital \ _letters를 통해 동일한 문자열을 실행하려면 1.8 초입니다. 3000 번. –
나는 어쩌면 우아하지만, 도움이되지 다른 솔루션 줘야 할 것 :
$mixed_case = "HelLo wOrlD";
$lower_case = strtolower($mixed_case);
$similar = similar_text($mixed_case, $lower_case);
echo strlen($mixed_case) - $similar; // 4
이 솔루션과 같은 것 같습니다. 대문자와 발음 구별 부호가있는 경우에도 사용할 수 있습니다. +1 – LittleTiger
조지 Garchagudashvili 솔루션 놀랍을하지만, 소문자는 분음 부호 나 악센트가 포함 된 경우는 실패합니다. 당신이 부정 행위를하려는 경우
public static function countCapitalLetters($string){
$lowerCase = mb_strtolower($string);
return strlen($lowerCase) - similar_text($string, $lowerCase);
}
- 1. 생성기/반복기의 항목 수를 계산하는 가장 짧은 방법은 무엇입니까?
- 2. 가장 짧은 시간에 가장 짧은 경로의 알고리즘
- 3. 목표를 향해 가장 짧은 방법은?
- 4. 루비에서 가장 짧은 hex2bin?
- 5. 반전하는 가장 짧은 방법
- 6. CMake의 목록에 참여하는 가장/가장 짧은 방법
- 7. 전쟁의 안개를 계산하는 가장 빠른 방법은 무엇입니까?
- 8. 사용자로부터 가장 가까운 위치를 계산하는 방법은 무엇입니까?
- 9. 가장 많이 사용되는 앱을 계산하는 방법은 무엇입니까?
- 10. 발생 횟수를 계산하는 가장 효율적인 방법은 무엇입니까?
- 11. 시간 범위를 계산하는 가장 좋은 방법은 무엇입니까?
- 12. 가장 가까운 점을 계산하는 효율적인 방법은 무엇입니까?
- 13. PHP로 태그를 탐지하는 가장 좋은 방법은 무엇입니까?
- 14. PHP로 프로젝트를 개발하는 가장 빠른 방법은 무엇입니까?
- 15. .NET에서 짧은 문자열을 암호화하는 가장 좋은 방법은 무엇입니까?
- 16. EMGU 이미지에 짧은 [] 배열, 가장 빠른 방법은?
- 17. html에 짧은 배열을 저장하는 가장 효율적이고 안전한 방법은 무엇입니까?
- 18. webkit에서 float를 지우는 가장 간단한 방법은 무엇입니까?
- 19. 이미지 목록을 탐색하는 가장 간단한 방법은 무엇입니까?
- 20. iPhone에서 NSInteger를 유지하는 가장 간단한 방법은 무엇입니까?
- 21. elisp에서 이메일을 보내는 가장 간단한 방법은 무엇입니까?
- 22. 다른 서버를 청취하는 가장 간단한 방법은 무엇입니까?
- 23. 간단한 문법을 가장 잘 해석하는 방법은 무엇입니까?
- 24. C2DM을 사용하는 가장 간단한 방법은 무엇입니까?
- 25. 루핑 사운드를 재생하는 가장 간단한 방법은 무엇입니까?
- 26. Silverlight 응용 프로그램의 (가장 짧은) 짧은 이름은 무엇입니까?
- 27. 가장 간단한 방법은 C#을
- 28. px로 문자열의 너비를 계산하는 방법은 무엇입니까?
- 29. 문자열의 픽셀 길이를 계산하는 방법은 무엇입니까?
- 30. 가장 짧은 하위 문자열 찾기
:) –
간단한 나 strlen (strtoupper ($ str을)를)
그래서 나는 소문자 강조 문자로도 작동 자신의 버전을 개선하기 위해 작은 수정을했다 가장 우아한! = 코드 골프 –str_replace (range ('A', 'Z'), '', $ str, $ num_caps); echo $ num_caps; – GZipp