我本人是刚刚接触java的,对于注释的问题应该怎样操作呢?具体的要求如下:计算编译通过的java代码中有效语句(除去空格行、注释语句、单行只有1个字符的语句)的数目。
    方法原型: int calCodeLines(String[] codes);
   分析:java的三种注释:// 单行, /*  */ 多行,/**  */多行
         空行中可能含有空格,所以需要先压缩空格:trim方法。
         单行只有一个字符的合法语句是{ \ }
   测试输入:
 String[] codes = {"/**",
            "@author fh",
            "demo */",
            "            ",
            "public class Hello {",
            "/*  @param args", 
            "*/",
            "//main 是 java 程序入口方法",
            "public static void main(String[] args) {",
        "  System.out.println('hello');  //输出hello ",
      "}",
            "}"  
            };
  上述输入就是一个简单的java程序按行存放到字符串数组中的形式,注意由于外围使用了"",所以println中的hello用了单引号'。
   输出的实际行数按要求应为3(注意"}"所占的行不算);我也在百度上搜索啦,但是还是不会。在此谢谢各位大侠帮助,,谢谢啦,我真的很需要帮助的!!

解决方案 »

  1.   

    你可以在Eclipse里面用很快的方式打出来的。。//这个应该不用说了。。
    /*  */就是ctrl+shift+/     取消是 ctrl+shift+\
    /** */最简单了,,打/**然后回车,就可以出来全部的了。
      

  2.   

    INT  COUNT = 0;
    BOOL FLAG = FALSE;
    FOR STR IN codes
    {
       STR = TRIM(STR);
       IF(STR=='') CONTINUE;
       IF(STR.STARTWITH('/*'))
       {  FLAG =TRUE; CONTINUE; } 
       IF(FLAG && STR.ENDWITH('*/'))
       { FLAG = FALSE; CONTINUE; }
       IF(FLAG)CONTINUE;
       IF(STR.STARTWITH('//'))
       {  CONTINUE;}
       IF(STR=='{' OR STR =='}')
       { CONTINUE; }
       COUNT++;
    }
    RETURN COUNT;
      

  3.   

    INT COUNT = 0;
    BOOL FLAG = FALSE;
    FOR STR IN codes
    {
      STR = TRIM(STR);
      IF(STR=='') CONTINUE;
      IF(STR.STARTWITH('/*'))
      { FLAG =TRUE; }  
      IF(FLAG && STR.ENDWITH('*/') && STR != '/*/')
      { FLAG = FALSE; CONTINUE; }
      IF(FLAG)CONTINUE;
      IF(STR.STARTWITH('//'))
      { CONTINUE;}
      IF(STR=='{' OR STR =='}')
      { CONTINUE; }
      COUNT++;
    }
    RETURN COUNT;