本帖最后由 willowflx 于 2009-09-13 11:55:31 编辑

解决方案 »

  1.   

    对第一题感到有点意思我的想法
    先建立一个二维数组 12*31的 ,初始化后二维数组每个值都为0.其实二维数组是代表日期的标志,比如5月5日 就是array[4[4] 
    12月1日就是array[11][0].然后判断日期,如果一行只有一个日期,则先判断数组里对应的值,如果是0,则改为1.
    如果一行有日期段,则用String.split打开。然后循环判断。判断数组里对应的值,如果是0,则改为1.最后将数组里面所有为1的项换算成日期输出【月份和日期即在各自的数组下标上加1】
      

  2.   

    第一题可以这样:一天的如8月21日看成是8月21日-8月21日,这样就都变成了一个时间段
    然后从每个时间段取出两个字符串,将这些字符串存到两个字符数组中(比如说5月1日-6月7日 
    存储为date1[0] = "0501",data2[0]="0607"),然后按字符串大小分别排序,然后再对两个数组的元素进行比较整合,组成新的时间段
      

  3.   

    第二题较简单:主要是分割字符串
    假设代码段为str,首先判断其是否包含{",若有则按其进行分割成str1,str2,在判断str2是否含有“"}”,若有则按其进行分割成str21,str22,那么str22部分就是注释部分,然后再把str22当作str进行处理
    若str不包含{",则先将其按\n进行分割,再判断每一个子字符串是否包含//,后面的和上面的处理类似
      

  4.   

    谢谢大家的热情回复。对第二个题目想到的也是字符串分割,第一个题目,有人给我一建议,跟fhm727比较相近,先将日期变成时间段,然后转换格式放到数组中,遍历排序,统计天数。
    如果可以,希望有更详细的解题方案!欢迎继续讨论。
      

  5.   

    第一题,把日期转化为long 类型,做整数算法更简单一些!
      

  6.   

    3:
    1、select * from T where EmplyeeID='10A'
    2、select Dept,sum(Income) from T group by Dept
    3、select City,max(Income) from T group by City
      

  7.   

    8月21日=>0821(short)5月1日-6月7日 =>0501......0607(这里需要判断每个月的天数)把他们转换成有效的数字放到数组中(动态数组,也可用链表);
    如果允许可用hash过滤重复的数字,
    然后对数组排序.
    输出时在转换0802=>8月21日
    PS:现在好多语言字符串也可以比较大小啊,直接搞个Tree,往里放就可以了啊,
      

  8.   

    第一题:  格式都是 xx月xx日,可以将它们先转化成java.util.Date对像。
      Date对象是可以比较的。
      转换的时候,要用到java.text.SimpleDateFormat类,以及其parse()方法。第二题:用正则表达式,JAVA是支持正则表达试的。。一行代码就解决问题。正则表达式大概这样写:String rex = "/^{\".\"}$/";我是两年前用过正则表达式,好久没写了,也不知道这个写对没。但是总的来说,用正则表达式来处理,绝对没错。其它题目就不用多说了。