Estoy usando Delphi 2007 y me pregunto si existe una manera simple de contar la cantidad de veces que una cadena se encuentra en otra cadena. ¿Alguna función integrada que pueda usar?Delphi: cuenta el número de veces que se produce una cadena en otra cadena
Ejemplos: "¿Cómo está usted"
- "Cómo" se produce una vez en la cadena
- "do" aparece dos veces en la cadena "¿Cómo estás?"
segundo PosEx se podría escribir "offset: = PosEx (subcadena, texto, offset + longitud (subcadena));" si no se preocupan por subcadenas recurrentes. ;) –
@ A.Bouchez: Sí, eso es muy cierto. Incluso diría que debes usar la longitud real de la subcadena * especialmente * si te preocupa la entrada (patológica) como 'Ocurrencias ('ddd', 'dddddddd')'. Yo he cambiado eso. Por supuesto, para el rendimiento, es una buena idea guardar 'len: = length (Substring)' antes del bucle (¿o es el compilador lo suficientemente inteligente como para hacer esta optimización por sí mismo?). –
+1 Probablemente usaría una var y almacenaría la longitud de SubString en ella para evitar las llamadas repetidas a Length, pero dado que Length realmente solo lee una compensación negativa de @SubString, probablemente no sea una gran actuación de todos modos. . :) –