¿Cómo puedo verificar si mi entrada es un tipo particular de cadena? Entonces no hay numérico, no "/", ...verificar el contenido de la entrada de cadena
Respuesta
Bueno, para comprobar que una entrada es en realidad un objeto de tipo System.String
, sólo tiene que hacer:
bool IsString(object value)
{
return value is string;
}
comprobar que un string
contiene sólo letras, se podría hacer algo como esto:
bool IsAllAlphabetic(string value)
{
foreach (char c in value)
{
if (!char.IsLetter(c))
return false;
}
return true;
}
Si la intención de combinar estos, usted podría hacerlo:
bool IsAlphabeticString(object value)
{
string str = value as string;
return str != null && IsAllAlphabetic(str);
}
Buen ejemplo de ambos, ya que el título y la pregunta no coinciden exactamente. – corsiKa
No está del todo claro lo que quiere, pero probablemente pueda hacerlo con una expresión regular. Por ejemplo, para comprobar que la cadena contiene sólo letras en az o AZ usted puede hacer esto:
string s = "dasglakgsklg";
if (Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase))
{
Console.WriteLine("Only letters in a-z.");
}
else
{
// Not only letters in a-z.
}
Si también desea permitir espacios, guiones, u otros caracteres sólo tiene que añadir que entre los corchetes en la expresión regular . Tenga en cuenta que algunos caracteres tienen un significado especial dentro de las clases de caracteres de expresiones regulares y deben escaparse con una barra diagonal inversa.
También puede usar \p{L}
en lugar de [a-z]
para que coincida con cualquier carácter Unicode que se considere una letra, incluidas las letras en alfabetos extranjeros.
Algo como esto (no se ha probado) puede ajustarse a su (vago) requisito.
if (input is string)
{
// test for legal characters?
string pattern = "^[A-Za-z]+$";
if (Regex.IsMatch(input, pattern))
{
// legal string? do something
}
// or
if (input.Any(c => !char.IsLetter(c)))
{
// NOT legal string
}
}
using System.Linq;
...
bool onlyAlphas = s.All(c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
+1 por no usar expresiones regulares – Aren
-1 por ser brutal – Luiscencio
No me malinterpreten: regex tiene sus aplicaciones. Pero para un algoritmo sencillo de un solo paso como este, es excesivo. Sin embargo, me gusta más la respuesta de Reed. No sabía sobre 'Char.IsLetter'. – StriplingWarrior
Si se refiere a "es la cadena completamente letras", que podría hacer:
string myString = "RandomStringOfLetters";
bool allLetters = myString.All(c => Char.IsLetter(c));
Esto se basa en el método de LINQ y Char.IsLetter.
esto es genial =) – Luiscencio
¿Cómo funciona Char.IsLetter con la localización? – ahsteele
@ahsteele: En realidad System.Globalization.CharUnicodeInfo para manejar esto para caracteres no latinos. –
- 1. ¿Cómo comprobar si el contenido de la cadena contiene HTML?
- 2. Cómo verificar la entrada en UITextField (es decir, entrada numérica)
- 3. Fórmula de Excel para verificar el contenido de la celda
- 4. java impresión flujo de entrada a la consola el contenido
- 5. Verificar el formato de una cadena
- 6. Puede verificar el contenido de rsync antes de sincronizar
- 7. Verificar si la cadena contiene solo dígitos
- 8. C# Verificar si el archivo de texto tiene contenido
- 9. NumberFormatException para la cadena de entrada
- 10. Verificar una entrada con jQuery.contains()
- 11. Verificar primer Char en cadena
- 12. jquery - verificar la longitud del campo de entrada?
- 13. ¿Cómo verificar el tamaño de entrada del archivo con jQuery?
- 14. Recuperar el contenido de la URL como cadena
- 15. cómo borrar el contenido en la secuencia de cadena.
- 16. Referenciando el modelo con la entrada de cadena
- 17. La cadena de entrada no estaba en el formato correcto
- 18. La cadena de entrada no estaba en el formato correcto
- 19. Cómo verificar una cadena de entrada en bash está en formato de versión (n1.n2.n3)
- 20. Verificar la cadena utf8 válida en Python
- 21. ¿Cómo verificar el conjunto de caracteres de cadena en Java?
- 22. ¿Cómo verificar el formato de fecha de cadena en PHP?
- 23. Verificar si la cadena contiene letras iniciales
- 24. Regex para comprobar que la cadena de entrada está en el idioma persa
- 25. La cuota máxima de longitud de contenido de cadena (8192)
- 26. Detectar lenguaje de entrada de cadena/usuario
- 27. Cómo verificar si la entrada del usuario finaliza con una cadena específica en el script por lotes (.bat)
- 28. ¿Qué causa el error de keytool "No se pudo descifrar la entrada de contenido seguro"?
- 29. cómo verificar si el tipo de entrada es la radio usando jquery
- 30. ¿La cadena cifrada tiene la misma longitud que la cadena de entrada?
D o, por casualidad, ¿significa alfabético (solo letras) en lugar de cadena? – BoltClock
¿Quiere decir, "¿Cómo puedo verificar si una cadena contiene solo caracteres?" –
¿Te refieres a una cadena que consta únicamente de caracteres alfanuméricos? ¿Puedes definir qué personajes exactamente? –