Подсчитать все вхождения символа в строке - PullRequest
44 голосов
/ 27 октября 2011

Есть ли в Scala собственный способ подсчета всех вхождений символа в строке?

Если так, как мне это сделать?

Если нет, нужно ли использовать Java?Если да, то как мне это сделать?

Спасибо!

Ответы [ 3 ]

90 голосов
/ 27 октября 2011
"hello".count(_ == 'l') // returns 2
4 голосов
/ 27 октября 2011

Я не использую Scala или даже Java, но поиск в Google по запросу "Scala string" привел меня к здесь

, который содержит:

def
count (p: (Char) ⇒ Boolean): Int
Counts the number of elements in the string which satisfy a predicate.
p
the predicate used to test elements.
returns
the number of elements satisfying the predicate p.
Definition Classes
TraversableOnce → GenTraversableOnce

Кажется довольно простым, но я не использую Scala, поэтому не знаю синтаксис вызова функции-члена. В этом случае может потребоваться больше ресурсов, чем необходимо, потому что похоже, что он может искать последовательность символов. при чтении на другой странице результатов строка может быть преобразована в последовательность символов, и вы, вероятно, можете легко просмотреть их и увеличить счетчик.

0 голосов
/ 04 июля 2019

Вы также можете использовать подход более высокого уровня для просмотра вхождений подстроки в другой строке, используя sliding:

def countSubstring(str: String, sub: String): Int =
  str.sliding(sub.length).count(_ == sub)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...