Verilen bir dizgede büyük harf sayısını saymanın en kısa, en basit ve en zarif yolunu arıyorum.php ile bir dizede büyük harfleri saymanın en basit, en kısa yolu?
cevap
function count_capitals($s) {
return strlen(preg_replace('![^A-Z]+!', '', $s));
}
cletus kod yazamıyor. nereden geldi? –
Çeşitli dillerden özel utf-8 karakterlerle çalışmaz. –
En kısa değil, ancak bir regex'in yürütülmesi gerekmediği en basit olanıdır. Normalde mantık ve kontrollerin basit olması gibi daha hızlı olması gerektiğini söyleyebilirim, ama PHP her zaman diğer şeylerle karşılaştırıldığında bazı şeylerin ne kadar hızlı ve yavaş olduğuyla beni şaşırtıyor.
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";
Tıpkı C'deki gibi! – alex
İşlev * count \ _capitals * şu ana kadar daha hızlıdır. Çok kısa dizelerle * sayım \ _capitals * sadece biraz daha hızlıdır fakat "Lorem ipsum ..." un ilk paragrafı ile 0.03 saniyeyi çalıştırmak için 0.03 saniyeyi vs 1.8 saniyeyi çalıştırmak için aynı dize işlevini çalıştırırsınız * capital \ _letters * 3000 kere. –
belki zarif ama yararlı değil başka bir çözüm, verirdim:
$mixed_case = "HelLo wOrlD";
$lower_case = strtolower($mixed_case);
$similar = similar_text($mixed_case, $lower_case);
echo strlen($mixed_case) - $similar; // 4
Bu çözüm, üzerlerinde aksanlarla yazılmış büyük harfler için bile işe yarayacak gibi görünüyor. +1 – LittleTiger
George Garchagudashvili Çözüm şaşırtıcı, ama küçük harfler aksan işaretleri veya aksan içeren eğer başarısız olur. Eğer hile isterseniz
public static function countCapitalLetters($string){
$lowerCase = mb_strtolower($string);
return strlen($lowerCase) - similar_text($string, $lowerCase);
}
- 1. En kısa yolu birbirini izleyen her çizgide
- 2. En Kolay Yolu PHP ile Algılama?
- 3. Harfleri en belirgin şekilde düzenleme?
- 4. PHP ile PDF oluşturmanın en iyi yolu
- 5. Lucene (java) 'da tüm sonuçları saymanın en hızlı yolu
- 6. bash - Bulma sonuçlarını saymanın en iyi yolu nedir?
- 7. Java'da kodlama ve readLine() ile dosyayı açmanın en kısa yolu?
- 8. Networkx - En kısa yol uzunluğu
- 9. En basit en kısa sınıfta tek bir test yöntemi nasıl çalıştırılır?
- 10. Diziyi daha az elemanla döndürmenin en kısa yolu
- 11. Büyük boy bitmap'i döndürmenin en hızlı yolu
- 12. Büyük önek ağacını saklamanın en iyi yolu
- 13. Basit sayılar tanımanın en iyi yolu nedir?
- 14. Diziyi vektöre dönüştürmenin en basit yolu nedir?
- 15. C# içinde değişmez bir sınıf oluşturmanın en kısa yolu nedir?
- 16. Scala'da Short türünde bir değişkeni artırmanın en kısa yolu nedir?
- 17. Büyük dosyaları php ile şifrelemek için en iyi yaklaşım
- 18. İki düğüm arasında en kısa yolu bulmanın en iyi yolu Tinkerpop 3.1
- 19. SQL tablosunu PHP ile görüntülemenin en iyi yolu nedir?
- 20. models.py büyük olsun, onu kırmanın en iyi yolu nedir?
- 21. Bir turnracer oyununda en kısa rotayı araştırın
- 22. Grafikte en kısa yolların sayısı
- 23. PHP kancaları yapmanın en iyi yolu
- 24. En etkili yolu
- 25. En etkili yolu
- 26. dijkstra algoritmasında en kısa yol nasıl kaydedilir
- 27. Büyük bir durum makinesini uygulamanın en iyi yolu?
- 28. Büyük bir tablodan benzer değer bulmanın en iyi yolu
- 29. Perl'de bir ikili dizgiye eklenmesinin en basit yolu nedir?
- 30. Xilinx FPGA'nın MGT'sine bir sinyal iletmenin en basit yolu nedir?
:;) –
en basit strlen (strtoupper ($ str))
yüzden küçük harf vurgulu harflerle da çalışır o halinin, geliştirmek için küçük bir düzeltme yaptı ve en zarif! = code golf –str_replace (aralık ('A', 'Z'), '', $ str, $ num_caps); echo $ num_caps; – GZipp