|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Ну т.е. для вычисления напр. к-ва запятых aaa,bbb,ccc,ddd А есть готовая ф-ция? В VB6 годами использовал свою конструкцию Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Оно и в .Net без замены кода прокатит конечно. Не думая долго с учетом нек. опыта накалякал Код: vbnet 1. 2. 3.
Даже больше одного символа в the_delim будет работать. Тупые варианты типа chnum ("2222222222222","222") не рассматриваем. А совсем готовое что-то есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 21:58 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Дмитрий77В VB6 годами использовал свою конструкциюя годами использовал Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 22:04 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Shocker.Pro, Как думаешь, для одного символа твое быстрее чем то что я придумал со Split? Пофиг наверно. Я ж с короткими строками работаю. Для нескольких aaa@@bbb@@ccc@@ddd твое надо делить на len(@@), а это заморочки Хотя речь сейчас об одном символе. Не, но неужели готовой ф-ции нету? Число вхождений substring в string? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 22:20 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Дмитрий77твое надо делить на len(@@), а это заморочки целая команда процессора. не бери в голову ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 22:27 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
если в подстроке символ один, можно использовать Count из LinQ можно использовать регулярки думаю, что оба способа будут медленнее, чем банальный Replace ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 22:42 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Дмитрий77Не, но неужели готовой ф-ции нету? Число вхождений substring в string? Готовой нет. Видимо в MS решили что это редкая задача. У решений через Split и Replace одинаковый недостаток - лишние временные объекты. Они короткоживущие и сборщик мусора их быстро удалит. Однако я бы предпочел решение без них. Например так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 22:54 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
bazileУ решений через Split и Replace одинаковый недостаток - лишние временные объекты. Они короткоживущие и сборщик мусора их быстро удалит. А не перебираешь со сборщиком мусора? Ведь в VB6 код такой же и нет там никакого сборщика. Что бы там внутри ChNum не создавалось, все это удалится по завершении работы ChNum, разве не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 23:59 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Дмитрий77Что бы там внутри ChNum не создавалось, все это удалится по завершении работы ChNum, разве не так? Не так. В .NET используется недетермированная модель управления памятью. Это означает что мы не знаем когда именно память выделенная в управляемой куче будет освобождена. Кроме того дело не в том когда именно будет освобождена память. Сборка мусора является одним из узких мест в .NET приложениях. Поэтому если возможность переписать код без лишних выделений памяти, то следует ей воспользоваться. Дмитрий77А не перебираешь со сборщиком мусора? Мой совет в какой-то мере является преждевременной оптимизацией. Реальный эффект на скорость приложения зависит от частоты вызовов функции ChNum. Дмитрий77Ведь в VB6 код такой же и нет там никакого сборщика. А в .NET есть и надо знать как он работает и какое влияние оказывает на приложениею ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 00:20 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
bazileзависит от частоты вызовов функции ChNum. Скажем так я ее часто употребляю (иначе б не разводил этот базар), но не так чтоб зацикленно непрерывно, чтоб это могло реально как то влиять. Ладно убедил. Возьму твой первый вариант, в самый раз. А свой вариант со Split оставлю про запас на случай делимитеров в несколько символов (не помню правда что я это где-то использую). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 00:46 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
господа оптимизаторы, вы ещё не всё отжали. Где работа с unsafe указателями? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 08:16 |
|
Число вхождений символа в строку
|
|||
---|---|---|---|
#18+
Изопропилгоспода оптимизаторы, вы ещё не всё отжали. Где работа с unsafe указателями? Точняк. Не успел сам предложить :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 09:39 |
|
|
start [/forum/topic.php?fid=20&msg=38789894&tid=1402299]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 173ms |
0 / 0 |