题目 – 检查字符串是否完整(包含所有字母)

如果字符串包含从 a 到 z 的所有字符,则认为该字符串是完整的。 给定一个字符串,检查它是否完整。 例如:

示例输入

3
wyyga
qwertyuioplkjhgfdsazxcvbnm
ejuxggfsts

示例输出

NO
YES
NO

使用for循环和indexOf()的解决方案

我写了一个简单的函数,可以找到这个完整的字符串。

package com.howtodoinjava.examples;

public class CheckAllAlphabetsAlgorithms
{
    public static void main(String[] args)
    {
        System.out.println( checkAllChars( "qwertyuioplkjhgfdsAzxcvbnm" ) );
        System.out.println( checkAllChars( "123" ) );
        System.out.println( checkAllChars( "ejuxggfsts" ) );
        System.out.println( checkAllChars( "wyyga" ) );
    }

    private static String checkAllChars ( String input )
    {
        //If input length is less than 26 then it can never be complete
        if(input.length() < 26)
        {
            return "FALSE";
        }

        for (char ch = 'A'; ch <= 'Z'; ch++)
        {
            if (input.indexOf(ch) < 0 && input.indexOf((char) (ch + 32)) < 0)
            {
                return "FALSE";
            }
        }
        return "TRUE";
    }
}

输出

TRUE
FALSE
FALSE
FALSE

用于正则表达式的解决方案

这是一个使用正则表达式查找完整字符串的解决方案(很丑,因为我不喜欢长的正则表达式)。

package com.howtodoinjava.examples;

public class CheckAllAlphabetsAlgorithms
{
    public static void main(String[] args)
    {
        System.out.println( checkAllCharsUsingRegex( "qwertyuioplkjhgfdsAzxcvbnm" ) );
        System.out.println( checkAllCharsUsingRegex( "123" ) );
        System.out.println( checkAllCharsUsingRegex( "ejuxggfsts" ) );
        System.out.println( checkAllCharsUsingRegex( "wyyga" ) );
    }

    private static String checkAllCharsUsingRegex ( String input )
    {
        //If input length is less than 26 then it can never be complete
        if(input.length() < 26)
        {
            return "FALSE";
        }

        String regex = "(?i)(?=.*a)(?=.*b)(?=.*c)(?=.*d)(?=.*e)(?=.*f)"
                + "(?=.*g)(?=.*h)(?=.*i)(?=.*j)(?=.*k)(?=.*l)(?=.*m)(?=.*n)"
                + "(?=.*o)(?=.*p)(?=.*q)(?=.*r)(?=.*s)(?=.*t)(?=.*u)(?=.*v)"
                + "(?=.*w)(?=.*x)(?=.*y)(?=.*z).*";

        if(input.matches(regex)){
            return "TRUE";
        }
        return "FALSE";
    }
}

输出

TRUE
FALSE
FALSE
FALSE