# 拼图 – 检查字符串是否完整（包含所有字母）

> 原文： [https://howtodoinjava.com/puzzles/puzzle-check-if-string-is-complete-contains-all-alphabets/](https://howtodoinjava.com/puzzles/puzzle-check-if-string-is-complete-contains-all-alphabets/)

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

**样本输入**

```java
3
wyyga
qwertyuioplkjhgfdsazxcvbnm
ejuxggfsts
```

**样本输出**

```java
NO
YES
NO
```

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

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

```java
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";
    }
}
```

**输出：**

```java
TRUE
FALSE
FALSE
FALSE
```

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

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

```java
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";
    }
}
```

**Output:**

```java
TRUE
FALSE
FALSE
FALSE
```

**祝您学习愉快！**