verificar una por leer extraer existe ejemplos ejemplo caracteres caracter cadena c# string

una - substring c#



¿Cómo puedo verificar si una cadena contiene un carácter en C#? (8)

¿Hay alguna función que pueda aplicar a una cadena que devuelva verdadero o falso si una cadena contiene un carácter?

Tengo cadenas con una o más opciones de caracteres como:

var abc = "s"; var def = "aB"; var ghi = "Sj";

Lo que me gustaría hacer, por ejemplo, es tener una función que devuelva verdadero o falso si lo anterior contiene una "s" mayúscula o minúscula.

if (def.Somefunction("s") == true) { }

También en C # ¿tengo que verificar si algo es así como así o podría simplemente eliminar el "== verdadero"?


Lo siguiente debería funcionar:

var abc = "sAb"; bool exists = abc.IndexOf("ab", StringComparison.CurrentCultureIgnoreCase) > -1;


Puede crear su propio método de extensión si planea usarlo mucho.

public static class StringExt { public static bool ContainsInvariant(this string sourceString, string filter) { return sourceString.ToLowerInvariant().Contains(filter); } }

uso de ejemplo:

public class test { public bool Foo() { const string def = "aB"; return def.ContainsInvariant("s"); } }


Puede usar el método IndexOf , que tiene una sobrecarga adecuada para los tipos de comparación de cadenas:

if (def.IndexOf("s", StringComparison.OrdinalIgnoreCase) >= 0) ...

Además, no necesitaría == true , ya que una sentencia if solo espera una expresión que se evalúa como bool .


Puede usar el método de extensión .Contains() desde el espacio de nombres System.Linq:

if (abc.ToLower().Contains(''s'')) { }

Y no, para verificar si una expresión booleana es verdadera, no necesita == true

Como el método Contains es un método de extensión, mi solución pareció ser confusa para algunos. Aquí hay dos versiones que no requieren que agregue using System.Linq; :

if (abc.ToLower().IndexOf(''s'') != -1) { } // or: if (abc.IndexOf("s", StringComparison.CurrentCultureIgnoreCase) != -1) { }

Actualizar

Si lo desea, puede escribir su propio método de extensiones para una reutilización más fácil:

public static class MyStringExtensions { public static bool ContainsAnyCaseInvariant(this string haystack, char needle) { return haystack.IndexOf(needle, StringComparison.InvariantCultureIgnoreCase) != -1; } public static bool ContainsAnyCase(this string haystack, char needle) { return haystack.IndexOf(needle, StringComparison.CurrentCultureIgnoreCase) != -1; } }

Entonces puedes llamarlo así:

if (def.ContainsAnyCaseInvariant(''s'')) { } // or if (def.ContainsAnyCase(''s'')) { }

En la mayoría de los casos, cuando se trata de datos de usuario, en realidad desea usar CurrentCultureIgnoreCase (o el método de extensión ContainsAnyCase ) , porque de esa manera permite que el sistema maneje los problemas de mayúsculas / minúsculas, que dependen del idioma. Cuando se trata de problemas computacionales, como nombres de etiquetas HTML, etc., desea utilizar la cultura invariable.

Por ejemplo: en turco, la letra mayúscula I en minúsculas es ı (sin un punto) y no i (con un punto) .


Será difícil trabajar en C # sin saber cómo trabajar con cadenas y booleanos. Pero de todos modos:

String str = "ABC"; if (str.Contains(''A'')) { //... } if (str.Contains("AB")) { //... }


Use la función String.Contains ();

una llamada de ejemplo,

abs.Contains("s"); // to look for lower case s

here hay más de MSDN.


aquí hay un ejemplo de lo que la mayoría de ellos han hecho

using System; class Program { static void Main() { Test("Dot Net Perls"); Test("dot net perls"); } static void Test(string input) { Console.Write("--- "); Console.Write(input); Console.WriteLine(" ---"); // // See if the string contains ''Net'' // bool contains = input.Contains("Net"); // // Write the result // Console.Write("Contains ''Net'': "); Console.WriteLine(contains); // // See if the string contains ''perls'' lowercase // if (input.Contains("perls")) { Console.WriteLine("Contains ''perls''"); } // // See if the string contains ''Dot'' // if (!input.Contains("Dot")) { Console.WriteLine("Doesn''t Contain ''Dot''"); } } }


bool containsCharacter = test.IndexOf("s", StringComparison.OrdinalIgnoreCase) >= 0;