¿cómo puedo calcular el número de repeticiones de caracteres en una cadena en C#? ejemplo tengo número sasysays de repetición de caracteres 's' 4calcular el número de repeticiones de caracteres en una cadena en C#
Respuesta
Aquí es una versión usando LINQ (escrito utilizando métodos de extensión):
int s = str.Where(c => c == 's').Count();
Esto utiliza el hecho de que string
es IEnumerable<char>
, de modo que podamos filtrar todos los caracteres que sean iguales a los que está buscando y luego contar el número de elementos seleccionados. De hecho, se puede escribir sólo por esta (debido a que el método de Count
le permite especificar un predicado que se debe mantener durante todos los elementos contados):
int s = str.Count(c => c == 's');
for(int i=0; i < str.Length; i++) {
if(str[i] == myChar) {
charCount++;
}
}
s.Where(c => c == 's').Count()
dada s es una cadena y que están buscando 's '
string s = "sasysays ";
List<char> list = s.ToList<char>();
numberOfChar = list.Count<char>(c => c=='s');
Otra opción es:
int numberOfS = str.Count('s'.Equals);
Esto es un poco hacia atrás - 's'
es un char, y cada char tiene un método Equals
, que se puede utilizar como argumento para Count
.
Por supuesto, esto es menos flexible que c => c == 's'
- no se puede cambiar trivialmente a una condición compleja.
+1, bastante inteligente ... –
Definitivamente inteligente, aunque ciertamente menos intuitivo que escribir 'c => c == 's'' (Diría que es más probable que el código cause pausa). – Phong
Una solución más general, para contar el número de ocurrencias de todos los personajes:
var charFrequencies = new Dictionary<char, int>();
foreach(char c in s)
{
int n;
charFrequencies.TryGetValue(c, out n);
n++;
charFrequencies[c] = n;
}
Console.WriteLine("There are {0} instances of 's' in the string", charFrequencies['s']);
Bueno, es muy posible que se necesite más de una letra, y calcularla una vez es una buena idea. También puede escribir 's.GroupBy (c => c) .ToDictionary (g => g.Key, g => g.Count());', para lograr el mismo diccionario. Probablemente estoy usando demasiado LINQ ': P' – Kobi
probar este código:
namespace Count_char
{
class Program
{
static void Main(string[] args)
{
string s1 = Convert.ToString(Console.ReadLine());
for (int i = 97; i < 123; i++)
{
string s2 = Convert.ToString(Convert.ToChar(i));
CountStringOccurrences(s1, s2);
}
Console.ReadLine();
}
public static void CountStringOccurrences(string text, string pattern)
{
int count = 0;
int i = 0;
while ((i = text.IndexOf(pattern, i)) != -1)
{
i += pattern.Length;
count++;
}
if (count != 0)
{
Console.WriteLine("{0}-->{1}", pattern, count);
}
}
}
}
- 1. ¿Cómo puedo calcular el número de caracteres necesarios para convertir una cadena en un palíndromo?
- 2. Calcular el ancho de visualización de una cadena en C#?
- 3. Detectar repeticiones en la cadena
- 4. En ANTLR, ¿cómo se especifica un número específico de repeticiones?
- 5. Editar caracteres en una cadena en C#
- 6. Prueba de caracteres repetidos en una cadena
- 7. Ordenando Caracteres de una Cadena de C++
- 8. Separar cadena en una matriz de caracteres en C++
- 9. ¿Qué comando en VBA puede contar el número de caracteres en una variable de cadena?
- 10. Encontrar palabras repetidas en una cadena y contar las repeticiones
- 11. Calcular el ancho de visualización de una cadena en Java
- 12. concatene cadena de caracteres en C++
- 13. Muestra el número total de caracteres de cadena
- 14. ¿Qué es una "cadena de caracteres anchos" en lenguaje C?
- 15. Calcular el hash MD5 de una cadena en Scala
- 16. Eliminar caracteres de la cadena en el estándar C
- 17. caracteres cheque alfanuméricos en cadena en C#
- 18. Cadena de formato como el número de teléfono en C#
- 19. Reemplazar varios caracteres en una cadena en Objective-C?
- 20. ¿Cómo cuento el número de palabras en una cadena?
- 21. XSD: cómo restringir el número de caracteres en el atributo de tipo de cadena?
- 22. ¿Cómo convierto una cadena de caracteres en una cadena wchar_t?
- 23. Combinaciones PostgreSQL sin repeticiones
- 24. Recortar caracteres de una cadena
- 25. ¿Cuenta el número de palabras en una cadena en R?
- 26. ¿Las expresiones regulares pueden encontrar repeticiones de caracteres?
- 27. matriz de caracteres a un número int en C
- 28. ¿Cómo puedo calcular el número de días de este año en el Objetivo C
- 29. Separar una cadena en un número, conservando el número
- 30. cuente caracteres específicos en una cadena (Java)
me trataron en VS2008 y la cadena no parece ser IEnumerable. ¿Puedes verificarlo? string.ToCharArray() es IEnumerable – josephj1989
@ josephj1989, verifique de nuevo ... http://msdn.microsoft.com/en-us/library/system.string.aspx –
Para que Intellisense le proporcione la extensión LINQ métodos, puede que tenga que convertir la cadena en 'IEnumerable'. –
Phong