Pattern p = Pattern.compile("\\w+\\.");           //不明白这句话的含义
        Class c = Class.forName("FancyToy");
        Method[] m = c.getMethods();
        System.out.println(p.matcher(m[1].toString()).replaceAll(""));  //不明白这句话的含义        希望高手给我解释一下,谢谢!!! 

解决方案 »

  1.   

        Pattern p = Pattern.compile("\\w+\\."); 这是正则表达式,Pattern你可以把它理解为一种匹配模式,这种模式匹配这样的字符串\\w+\\.,\\w+\\.的意思是以英文字母开头的一个或者多个字符并且以.结尾的字符串,例如:"dasdas."。
      

  2.   

        p.matcher(m[1].toString()).replaceAll("")是将数组m中m[1]的值转换成字符串并且替换成空串,看结果是否与模式p匹配,打印结果应改为false。
      

  3.   

    这个代码片段的作用就是将
    FancyToy中第二个方法的方法名称用正则匹配,如果匹配了,就用空串代替,你比如,方法名是“test.aaaa”,那么输出的结果就是aaaa。
      

  4.   

    这两句话都涉及到正则的使用Pattern p = Pattern.compile("\\w+\\.");          //不明白这句话的含义 匹配: 含有一到到多个英文字母且以.结尾的字符串
    System.out.println(p.matcher(m[1].toString()).replaceAll(""));  //不明白这句话的含义 将匹配的字符串用""来代替
      

  5.   

     正则表达式
    Pattern p = Pattern.compile("\\w+\\."); 
    Pattern你可以把它理解为一种匹配模式,这种模式匹配这样的字符串\\w+\\.,\\w+\\.的意思是以英文字母开头的一个或者多个字符并且以.结尾的字符串,例如:"get."。
     p.matcher(m[1].toString()).replaceAll("");
    是将数组m中第二个方法名取出,然后用上述匹配模式对取到的方法名进行匹配.如果匹配,则将该方法名用空字符串替代