Sprache: C#
Mit diesen beiden Extension Methods kann festgestellt werden, ob ein String mindestens einen Großbuchstaben oder einen Kleinbuchstaben enthält.
public static class ExtensionMethods
{
public static bool ContainsUpperSizeLetter(this string s)
{
return new System.Text.RegularExpressions.Regex("[A-Z]").IsMatch(s);
}
public static bool ContainsLowerSizeLetter(this string s)
{
return new System.Text.RegularExpressions.Regex("[a-z]").IsMatch(s);
}
}
public static class ExtensionMethods
{
public static bool ContainsUpperSizeLetter(this string s)
{
return new System.Text.RegularExpressions.Regex("[A-Z]").IsMatch(s);
}
public static bool ContainsLowerSizeLetter(this string s)
{
return new System.Text.RegularExpressions.Regex("[a-z]").IsMatch(s);
}
}
Alte URL:
/snippet/enthaelt-ein-string-gross-oder-kleinbuchstaben/1405
Da es hier anscheinend nicht um die schnellste Methode der Auswertung geht, sondern übersichtliche Zeile schlage ich vor:
[code]return s!=null && s.Where(p => p >= ‚A‘ && p <= 'Z').Count() > 0;[/code]
bzw. entsprechend angepasst für LowerCase
[code]return s!=null && s.Where(p => p >= ‚a‘ && p <= 'z').Count() > 0;[/code].
Braucht bei mir nur die Hälfte der Zeit der Regex-Methode.
Alternativ – wenn es nur um ´Groß-/Kleinschreibung geht
[code]
public static bool ContainsUpperSizeLetter(this string s)
{
return s!=s.ToLower();
}
public static bool ContainsLowerSizeLetter(this string s)
{
return s!=s.ToUpper();
}
[/code]
Allerdings dauert die Ausführung ebenfalls länger als die Where-Methode.
Hi, ich würde ja eher Any() vorschlagen, damit sollte nach dem ersten gefundenen Zeichen Schluss mit der Suche nach den richtigen Zeichen sein…
[code]return s!=null && s.Any(p => p >= ‚A‘ && p <= 'Z');[/code]