题一
将一个保存有ip地址与地区对照关系的文本文件导入到数据库时,应该将其中的某些空格替换成逗号(,),即对于如下格式的文本文件内容: 
起始IP 结束IP 地区 
--------------------------------------------------------------- 
61.54.231.245 61.54.231.245 河南省安阳市 新世纪网吧 
61.54.231.246 61.54.231.246 河南省安阳市 未知地区 
61.54.231.9 61.54.231.247 河南省安阳市 红日网吧 
61.54.231.248 61.54.231.248 河南省安阳市 安阳师范学院 
61.54.231.249 61.54.231.249 河南省安阳市 黑蜘蛛网吧(师范学院附近) 
应转换成下面的这种格式: 
61.54.231.245,61.54.231.245,河南省安阳市 新世纪网吧 
61.54.231.246,61.54.231.246,河南省安阳市 未知地区 
61.54.231.247,61.54.231.247,河南省安阳市 红日网吧 
61.54.231.248,61.54.231.248,河南省安阳市 安阳师范学院 
61.54.231.249,61.54.231.249,河南省安阳市 黑蜘蛛网吧(师范学院附近) 任务:阅读String.replaceAll方法的帮助,以及它提供的相关超链接,了解该方法的用法后,编写一个Java程序来自动实现上面的正则表达式替换,将a.txt(下载)替换后的结果保存到b.txt文件中。题二
我们在实现IT315网站的ip地区查询系统时,使用的是类似如下的sql语法: 
select 地区 from ip表 where 用户ip>起始IP and 用户ip<结束ip 
通过这条sql语句就可以查询出用户ip所对应的地区结果。由于用户ip与起始ip和结束ip的比较属于字符串比较,如果用户ip为9.1.1.1,那么它与61.54.231.245比较的结果就是前者大于后者,因为用户ip的第一个字符“9”大于61.54.231.245中的第一个字符“6”。 
现在请你想出一种解决办法,让上面的sql语句能够返回正确结果。提示:将9.1.1.1变化成009.001.001.001后与061.054.231.245进行比较就可以了。 
请按这种思路在你的程序中增加进行这种改变的正则表达式替换。注意,起始IP和结束IP的四个字段都有可能是1位、2位或3位数字,例如,61.5.23.1。 
在源程序中,要对程序代码的功能进行注释说明,提交你编写的程序给我们时,请附带该程序的使用说明。
解决马上给分,谢谢大家!

解决方案 »

  1.   

    1.
    public static void replaceSpace(){
    try{
    BufferedReader i = new BufferedReader(new FileReader("C:\\my document\\hello\\a.txt"));
    BufferedWriter o = new BufferedWriter(new FileWriter("C:\\my document\\hello\\b.txt"));
    String s ;
    while((s=i.readLine())!=null){
    o.write(s.replaceAll("\\s", ","));
    o.write("\r\n");
    }
    i.close();
    o.close();

    }catch(Exception e){System.out.println(e.toString());}
    }
      

  2.   

    2.
    public static void replaceString(){
    String ip = "1.2.3.4";
    String arrIp[] = ip.split("\\.");
    StringBuffer result = new StringBuffer();

    result.append(("000"+arrIp[0]).substring(arrIp[0].length()));
    result.append(".");
    result.append(("000"+arrIp[1]).substring(arrIp[1].length()));
    result.append(".");
    result.append(("000"+arrIp[2]).substring(arrIp[2].length()));
    result.append(".");
    result.append(("000"+arrIp[3]).substring(arrIp[3].length()));
    System.out.println(result.toString());
    }
      

  3.   

    第二个就麻烦了。你拼的了语句,拼不了数据啊。应该改写 SQL 语句才对。
      

  4.   

    恩,楼上说的有道理,在sql里写会方便很多
      

  5.   

    第一题,我觉得正则没必要,你可以先用空格split一下,让后str[0] + "," + str[1] + .....
    第二题,没时间看了,看了一眼,没思路