• 大小: 5KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: Java
  • 标签: java  关键字  

资源简介

实现一个类KeywordIdentifier,读入一个java程序源文件,输出各个关键字的个数(注意,注释中出现的关键字不计入关键字个数)

资源截图

代码片段和文件信息

import java.io.*;

class KeywordIdentifier {
    public static void main(String[] args) throws Exception {
        char[] kc = new char[800];                //保存关键字集的字符
        String[] kw = new String[55];              //保存关键字
        int kcountkj=0;                        //kj是关键字数量-1

        char[] s = new char[10000];
        String[]s1 = new String[1000];
        int countj=1;
        BufferedReader br = new BufferedReader(new FileReader(“第二题测试java源程序.java“));    //打开java源文件
        count = br.read(s);
        
        String[] f1 = new String[5];     //辅助识别
        char[] sk = new char[2];
        
        int imnk1=0k2=0;
        int num[] = new int[55];                   //统计对应字符出现的次数
//读入关键字集       
        BufferedReader kbr = new BufferedReader(new FileReader(“关键字集.txt“));  //读关键字文本文件流     
        kcount = kbr.read(kc);                        //kcount表示从文件里面读出字符个数。
        for (i = 0; i < 55; i++)    //初始化一开始String kw[i]有null就是犯了未初始化的错
         kw[i]=““;
        for (i = 0; i < kcount; i++){                            //把单个英文字符转成单词
         if(kc[i]>=‘a‘ && kc[i]<=‘z‘)
                kw[kj]+=kc[i];
            else if(kc[i+1]>=‘a‘ && kc[i+1]<=‘z‘){
             kj++;
                if(kw[kj-1]==kw[kj]) kj--;}          //确保第一个单词前面的空格不影响使s1[0]==“ “
        }
        char c1=‘\0‘;
/*        System.out.print(“Java语言中所有关键字:“+“\n“);
        for(i=0;i<=kj;i++)                              //输出测试用的文本信息
            System.out.print(kw[i]+“\t“);
        System.out.print(“\n“);*/

//我们有所有的关键字,现在要找出源程序中除去注释之后的关键字
        for (i = 0; i < 55; i++)                  //初始化 
         num[i] = 0;
        for (i = 0; i < 1000; i++)             //初始化化
            s1[i]=““;
    
        f1[0]=“//“; f1[1]=“/*“; f1[2]=“*/“; f1[3]=“/**“;    //辅助判断
        f1[4]=““;
        sk[0]=‘\n‘; 
        f1[4]+=sk[0];
        
        if((s[0]>=‘a‘ && s[0]<=‘z‘) || (s[0]==‘/‘) || (s[0]==‘*‘))
            s1[1]+=s[0];
        for (i = 1; i <= count; i++){          //关键字肯定是小写,所以只读小写单词和注释,换行符

         if((s[i]>=‘a‘ && s[i]<=‘z‘) || (s[i]==‘/‘) || (s[i]==‘*‘)){          
         if((s[i]==‘/‘) || (s[i]==‘*‘)){
         if(s[i-1]>=‘a‘ && s[i-1]<=‘z‘)       
         j++;
         s1[j]+=s[i];
         if(s1[j].equals(f1[0])){
                 for(n=i+1;k1==0 && n <= count;n++){
               

评论

共有 条评论