Java 程序检查字符串是否为 pangram


Pangram 是一个包含英语字母表中所有字母的字符串。例如,“The quick brown fox jumps over the lazy dog”。

问题陈述

给定一个字符串,编写一个 Java 程序来检查它是否为 pangram。

请考虑以下示例 -

输入
The quick brown fox jumps over the lazy dog.
输出
String: The quick brown fox jumps over the lazy dog.
The above string is a pangram.

算法

以下算法侧重于检查字符串是否为 pangram。

  • 步骤 1:创建一个大小为 26 的布尔数组 `alphaList` 来跟踪每个字母的存在。

  • 步骤 2:将整数 `flag` 初始化为 1,假设字符串为 pangram。

  • 步骤 3:检查 字符串中的每个字符:循环遍历字符串中的每个字符。

  • 步骤 4:如果字符是字母(大写或小写),则计算其在字母表中的索引,并将 `alphaList` 中相应的位位置为 `true`。

  • 步骤 5:验证所有字母:循环遍历 `alphaList`

  • 步骤 6:如果任何位位置为 `false`,则将 `flag` 设置为 0(表示字符串不是 pangram)。

  • 步骤 7:根据 `flag` 的值打印原始字符串以及它是否为 pangram。

Java 程序检查字符串是否为 pangram

下面给出了一个检查字符串是否为 pangram 的程序。

public class Example {
    public static void main(String[] args) {
        String str = "The quick brown fox jumps over the lazy dog";
        boolean[] alphaList = new boolean[26];
        int index = 0;
        int flag = 1;
        for (int i = 0; i < str.length(); i++) 
        {
            if ( str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') 
            {
                index = str.charAt(i) - 'A';
            } 
            else if( str.charAt(i) >= 'a' &&  str.charAt(i) <= 'z') 
            {
                index = str.charAt(i) - 'a';
            }
            alphaList[index] = true;
        }

        for (int i = 0; i <= 25; i++) 
        {
            if (alphaList[i] == false)
                flag = 0;
        }
        System.out.print("String: " + str);
        if (flag == 1)
            System.out.print("\nThe above string is a pangram.");
        else
            System.out.print("\nThe above string is not a pangram.");
    }
}

输出

String: The quick brown fox jumps over the lazy dog
The above string is a pangram.

代码解释

使用 for 循环遍历字符串 'str',对于每个字母,将 aplhaList 中相应的索引设置为 true。

演示此功能的代码片段如下所示:

for (int i = 0; i < str.length(); i++) {
    if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
        index = str.charAt(i) - 'A';
    } else if
    (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
        index = str.charAt(i) - 'a';
    }
    alphaList[index] = true;
}

之后,遍历 数组 alphaList。如果所有值都为 true,则字符串为 pangram,并且 flag 的值保持为 1。但是,如果即使 1 个值为 false,则字符串不是 pangram,并且 flag 的值被设置为 0。然后显示字符串是否为 pangram。

演示此功能的代码片段如下所示。

for (int i = 0; i <= 25; i++) {
    if (alphaList[i] == false)
        flag = 0;
}
System.out.print("String: " + str);
if (flag == 1)
    System.out.print("\nThe above string is a pangram.");
else
    System.out.print("\nThe above string is not a pangram.");
}

更新于: 2024-06-27

9K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.