Java程序检查给定字符串是否为Pangram(潘格拉姆)


在本文中,我们将了解如何检查给定的字符串在Java中是否为Pangram(潘格拉姆)。如果一个字符串包含字母表中的所有字符(不区分大小写),则该字符串为Pangram字符串。这里,我们将使用两种不同的方法:使用main()方法和使用封装

问题陈述

给定一个字符串,编写一个Java程序来查找该字符串是否为Pangram。

输入

Input string: Abcdefghijklmnopqrstuvwxyz

输出

Yes, the string is a pangram

不同的方法

以下是检查给定字符串是否为Pangram的步骤:

使用main()方法

以下是使用main()方法检查给定字符串是否为Pangram的步骤:

  • 首先,我们将创建一个名为Pangram的类,其中包含一个常量size = 26和一个辅助方法isLetter(char ch)来检查字符是否为字母。
  • 在main()中,定义输入字符串"Abcdefghijklmnopqrstuvwxyz",打印它,并将其转换为小写。
  • 创建一个大小为26的布尔数组is_true,以标记每个字母是否已找到。
  • 使用for循环遍历input_string中的每个字母,并在is_true中标记其位置。
  • 遍历is_true并使用if else语句进行条件检查,如果任何条目为false,则结果为false。
  • 如果所有字母都存在,则打印"Yes, the string is a pangram";否则,打印"No, the string is not a pangram"。

示例

在这里,我们将所有操作绑定到main()方法下:

public class Pangram {
   static int size = 26;
   static boolean isLetter(char ch) {
      if (!Character.isLetter(ch))
         return false;
      return true;
   }
   public static void main(String args[]) {
      String input_string = "Abcdefghijklmnopqrstuvwxyz";
      System.out.println("The string is defined as: " +input_string);
      int string_length = input_string.length();
      input_string = input_string.toLowerCase();
      boolean[] is_true = new boolean[size];
      for (int i = 0; i < string_length; i++) {
         if (isLetter(input_string.charAt(i))) {
            int letter = input_string.charAt(i) - 'a';
            is_true[letter] = true;
         }
      }
      boolean result;
      for (int i = 0; i < size; i++) {
         if (!is_true[i])
            result = false;
      }
      result = true;
      if (result)
         System.out.println("\nYes, the string is a pangram");
      else
         System.out.println("\nNo, the string is not a pangram");
   }
}

输出

The string is defined as: Abcdefghijklmnopqrstuvwxyz

Yes, the string is a pangram

使用封装

以下是使用封装检查给定字符串是否为Pangram的步骤:

  • 首先,我们将定义Pangram类,其中size = 26和一个辅助方法isLetter(char ch)。
  • 创建check_alphabets(String input_string, int string_length)方法,将输入转换为小写,在布尔数组中标记字母,并验证所有字母是否存在。
  • 在main()中,初始化输入字符串"Abcdefghijklmnopqrstuvwxyz",打印它,并调用check_alphabets方法。
  • 根据check_alphabets的返回值,打印"Yes, the string is a pangram"或"No, the string is not a pangram"。

示例

在这里,我们将操作封装到函数中,展示了面向对象编程

public class Pangram {
   static int size = 26;
   static boolean isLetter(char ch) {
      if (!Character.isLetter(ch))
         return false;
         return true;
   }
   static boolean check_alphabets(String input_string, int string_length) {
      input_string = input_string.toLowerCase();
      boolean[] is_true = new boolean[size];
      for (int i = 0; i < string_length; i++) {
         if (isLetter(input_string.charAt(i))) {
            int letter = input_string.charAt(i) - 'a';
            is_true[letter] = true;
         }
      }
      for (int i = 0; i < size; i++) {
         if (!is_true[i])
            return false;
      }
      return true;
   }
   public static void main(String args[]) {
   String input_string = "Abcdefghijklmnopqrstuvwxyz";
   System.out.println("The string is defined as: " +input_string);
   int string_length = input_string.length();
   if (check_alphabets(input_string, string_length))
      System.out.println("\nYes, the string is a pangram");
   else
      System.out.println("\nNo, the string is not a pangram");
   }
}

输出

The string is defined as: Abcdefghijklmnopqrstuvwxyz

Yes, the string is a pangram

更新于:2024年11月5日

475 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告