Что самый эффективный путь состоит в том, чтобы считать всеми случаями определенного символа в строке PHP?

Если вы знаете и любите Python, то IronPython может быть хорошей альтернативой. Он поставляется с (Python) консолью REPL (ipy.exe), где вы можете импортировать и использовать все типы .Net.

Я считаю, что это полезно для тестирования мелочей, в точности как DateTime.Parse("Blah").

Обратите внимание, что он на самом деле не может выполнить код C #, но если все, что вам нужно, это доступ к .Net, то он идеален. Кроме того, если вы установите IronPython Tools для VS , вы можете запустить сеанс REPL прямо в VS, используя одну комбинацию клавиш (Alt + I), и оставить ее работающей в закрепленном окне, когда вам это нужно.

15
задан T. Brian Jones 8 January 2012 в 20:56
поделиться

4 ответа

используйте это:

echo substr_count("abca", "a"); // will echo 2
37
ответ дан 1 December 2019 в 01:17
поделиться

Разве нельзя скормить персонажа preg_match_all ?

0
ответ дан 1 December 2019 в 01:17
поделиться

Не знаю, какой ответ вы ищете, но вот функция, которая может это сделать:

function findChar($c, $str) {
    indexes = array();
    for($i=0; $i<strlen($str); $i++) {
        if ($str{$i}==$c) $indexes[] = $i;
    }
    return $indexes;
}

Передайте ему искомый символ и строку, которую вы хотите посмотрите:

$mystring = "She shells out C# code on the sea shore";
$mychar = "s";
$myindexes = $findChar($mychar, $mystring);
print_r($myindexes);

Это должно дать вам что-то вроде

Array (
    [0] => 0
    [1] => 4
    [2] => 9
    [3] => 31
    [4] => 35
)

или что-то в этом роде ...

0
ответ дан 1 December 2019 в 01:17
поделиться

Если вы собираетесь многократно проверять одну и ту же строку, было бы разумно иметь для нее какое-то дерево или даже ассоциативный массив, в противном случае простой способ сделать это ... .

for($i = 0; $i < strlen($s); $i++)
  if($s[i] == $c)
    echo "{$s[i]} at position $i";
0
ответ дан 1 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: