七巧板是一个包含英语字母所有字母的字符串。一个容易打扰的例子是“敏捷的棕色狐狸跳过了懒狗”。
给出一个检查字符串是否为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,则string为pangram,并且flag的值保持为1。但是,即使1值为false,则string也不为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."); }