嗯,这有效,但我希望有人可以告诉我如何改进它。似乎有一种更清洁的方法:
function beanCounter($bean)
{
$counter = 0;
$i = 0;
while($bean[$i] != '') {
if($bean[$i] != ' ') {
$counter++;
}
$i++;
}
return $counter;
}
// following test case returns 26
$testString = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
$stringLength = beanCounter($testString);
echo($stringLength);
我在想,如果我使用正则表达式,我实际上只能计算字符,并能够在多句话字符串中考虑撇号或句号。显然有内置功能可以做到这一点,但我对它们不感兴趣
谢谢!
答案 0 :(得分:0)
甚至更干净:
while(ctype_alpha($bean[$i++])) {
}
答案 1 :(得分:0)
你可以使用。这会将每个以空格分隔的元素视为新字符并将其存储在数组中,并使用sizeof($arr)
来计算值。
$arr[] = explode(" ",$teststring);
答案 2 :(得分:-1)
while($bean[$i] != '') {
if(ctype_alpha($bean[$i])) {
$counter++;
}
$i++;
}
使用ctype_alpha - 检查字母字符
检查提供的字符串中的所有字符是否为字母。在标准C语言环境中,字母只是[A-Za-z]而ctype_alpha()等同于(ctype_upper($ text)|| ctype_lower($ text))如果$ text只是一个字符,但其他语言都有字母被认为既不是大写也不是小写。