拼图 之 检查字符串是否完整(包含所有字母)

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

样本输入

3
wyyga
qwertyuioplkjhgfdsazxcvbnm
ejuxggfsts

样本输出

没有
没有

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

我写了一个快速的功能,可以找到这个完整的字符串。

package com.how2codex.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";
    }
}

输出:

真正

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

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

package com.how2codex.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";
    }
}

输出:

真正

saigon has written 1445 articles

Leave a Reply