このセクションでは、Java ソース ファイル内のキーワードの数をカウントするアプリケーションを紹介します。 Java ソース ファイル内の各単語について、その単語がキーワードであるかどうかを判断する必要があります。これを効率的に処理するには、すべてのキーワードを HashSet に保存し、contains メソッドを使用してキーワード セットに単語が含まれているかどうかをテストします。以下のコードはこのプログラムを提供します。
package demo; import java.util.*; import java.io.*; public class CountKeywords { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a Java source file: "); String filename = input.nextLine(); File file = new File(filename); if(file.exists()) { try { System.out.println("The number of keywords in " filename " is " countKeywords(file)); } catch (Exception e) { System.out.println("An error occurred while counting keywords: " e.getMessage()); } } else { System.out.println("File " filename " does not exist"); } } public static int countKeywords(File file) throws Exception { // Array of all Java keywords true, false and null String[] keywordString = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "for", "final", "finally", "float", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while", "true", "false", "null"}; SetkeywordSet = new HashSet(Arrays.asList(keywordString)); int count = 0; Scanner input = new Scanner(file); while(input.hasNext()) { String word = input.next(); if(keywordSet.contains(word)) count ; } return count; } }
Java ソース ファイルを入力します: c:\Welcome.java
c:\Welcome.java のキーワードの数は 5
Java ソース ファイルを入力します: c:\TTT.java
ファイル c:\TTT.java が存在しません
プログラムはユーザーに Java ソース ファイル名の入力を求め (9 行目)、ファイル名を読み取ります (10 行目)。ファイルが存在する場合、countKeywords メソッドが呼び出され、ファイル内のキーワードがカウントされます (15 行目)。
countKeywords メソッドは、キーワードの文字列の配列を作成し (26 行目)、この配列からハッシュ セットを作成します (28 行目)。次に、ファイルから各単語を読み取り、その単語がセット内にあるかどうかをテストします (行 35)。そうであれば、プログラムはカウントを 1 増やします (行 36)。
LinkedHashSet、TreeSet、ArrayList、または LinkedList を使用してキーワードを保存するようにプログラムを書き直すことができます。ただし、このプログラムでは HashSet を使用するのが最も効率的です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3