Не источник вашей проблемы, но вам нужно
using (MemoryStream memoryStream = new MemoryStream())
{
serializer.Serialize(memoryStream, this);
memoryStream.Seek(0, SeekOrigin.Begin);
using (StreamReader reader = new StreamReader(memoryStream))
{
return reader.ReadToEnd();
}
}
function count_capitals($s) {
return strlen(preg_replace('![^A-Z]+!', '', $s));
}
Это не самый короткий, но, возможно, самый простой, поскольку регулярное выражение не обязательно должно выполняться. Обычно я бы сказал, что это должно быть быстрее, поскольку логика и проверки просты, но 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";