Feedback

Enthält ein String Groß- oder Kleinbuchstaben?

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);
    }
}

3 Kommentare

  1. 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.

  2. 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.

  3. 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]