Sto cercando il modo più breve, semplice ed elegante per contare il numero di lettere maiuscole in una determinata stringa.il modo più semplice e più breve per contare le lettere maiuscole in una stringa con php?
risposta
function count_capitals($s) {
return strlen(preg_replace('![^A-Z]+!', '', $s));
}
cletus non può scrivere codice. Da dove proviene? –
Non funziona con caratteri speciali di utf-8 dalla varietà di lingue. –
Non è il più breve, ma è probabilmente il più semplice in quanto una regex non deve essere eseguita. Normalmente direi che dovrebbe essere più veloce in quanto la logica e i controlli sono semplici, ma PHP mi sorprende sempre con la velocità e la lentezza di alcune cose rispetto agli altri.
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";
Proprio come in C! – alex
La funzione * count \ _capitals * è più veloce di gran lunga. Con stringhe molto corte * count \ _capitals * è solo un po 'più veloce ma con il primo paragrafo di "Lorem ipsum ..." è 0.03 secondi per eseguire 3000 iterazioni contro 1.8 secondi per eseguire la stessa stringa attraverso la funzione * capitale \ _letters * 3000 volte. –
darei un'altra soluzione, forse non elegante, ma utile:
$mixed_case = "HelLo wOrlD";
$lower_case = strtolower($mixed_case);
$similar = similar_text($mixed_case, $lower_case);
echo strlen($mixed_case) - $similar; // 4
Sembra che questa soluzione possa funzionare anche con lettere maiuscole con segni diacritici. +1 – LittleTiger
George Garchagudashvili Solution è incredibile, ma non riesce se le lettere minuscole contengono segni diacritici o accenti.
così ho fatto una piccola correzione per migliorare la sua versione, che funziona anche con minuscole accentuato lettere:
public static function countCapitalLetters($string){
$lowerCase = mb_strtolower($string);
return strlen($lowerCase) - similar_text($string, $lowerCase);
}
- 1. Contare le lettere maiuscole in una stringa
- 2. Il modo più semplice per incrementare una data in PHP?
- 3. Un modo semplice per contare le vocali in una stringa in PHP?
- 4. PHP più breve/lunga stringa nella matrice
- 5. Dividere una stringa in lettere maiuscole
- 6. Il modo più breve per compilare ArrayList
- 7. modo migliore e più breve per valutare le espressioni matematiche
- 8. Diviso a lettere maiuscole in PHP?
- 9. il modo più breve per ottenere il primo carattere da ogni parola in una stringa
- 10. Qual è il modo più efficace per contare tutte le occorrenze di un determinato carattere in una stringa PHP?
- 11. Come scegliere le lettere maiuscole da una stringa Swift?
- 12. Qual è il modo più semplice per scambiare il char in una stringa con Python?
- 13. come contare le parole in una stringa specifica in PHP?
- 14. Principianti di Scala - il modo più semplice per contare le parole nel file
- 15. Esiste un modo più rapido/più breve per inizializzare le variabili in una struttura di Rust?
- 16. In PHP, c'è un modo breve per confrontare una variabile con più valori?
- 17. Il modo più semplice per creare una cometa chat
- 18. Il modo più breve per verificare se una variabile contiene un numero intero positivo usando PHP?
- 19. Il modo più semplice per verificare se una stringa contiene una stringa nell'elenco?
- 20. Compressione semplice a stringa breve
- 21. Il modo più semplice per disegnare un'immagine?
- 22. Il modo più semplice per trasformare la raccolta in array?
- 23. Il modo più semplice per chiamare più AuthenticationSuccessHandlers?
- 24. Il modo più semplice per leggere l'input formattato in C++?
- 25. Il modo più semplice per rimuovere le relazioni ricorsive bidirezionali?
- 26. Trovare il percorso più breve con FGL
- 27. Il modo più semplice per simulare le proprietà dell'attributo PostSharp
- 28. Il modo più breve per verificare la perfetta Square?
- 29. Lettere maiuscole per i modelli con nome
- 30. Il modo più semplice per scambiare due file in bash
Se vuoi per ingannare: strlen (strtoupper ($ str));) –
più semplice e più elegante! = code golf –
str_replace (range ('A', 'Z'), '', $ str, $ num_caps); echo $ num_caps; – GZipp