本程序的功能是,根据用户输入的文件名,在相应的文件内容中查找匹配给定模式的字符串,并将这些字符串显示出来。模式串为“href="…"”。请填写横线处的内容。 注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。 impo

admin2009-12-22  45

问题 本程序的功能是,根据用户输入的文件名,在相应的文件内容中查找匹配给定模式的字符串,并将这些字符串显示出来。模式串为“href="…"”。请填写横线处的内容。
   注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
   import java.io.*;
   import java.util.regex.*;
   import javax.swing.*;
   public class Example2_10
   {
      public static void main(String  []  argv)
      {
              final String patternString =
                    "href\\s*=\\s*(\"[^\"]*\"|[^\\s>])\\s*;
              String fileName ;
              try
              {
                     System. out. print ( "请输入html 文件的文件名: ");
                     InputStreamReader in = new InputStreamReader(System.in);
                     BufferedReader imput = new BufferedReader(in);
                     fileName = imput.readLine();
                     if(fileName.equals(" "))
                            return;
                     StringBuffer buffer = new StringBuffer();
                     File file = new File(fileName);
                     FileInputStream readfile = new FileInputStream(file);
                     
                     for(int c = 0;  (c = readfile.read()) != -1;  )
                            buffer.append((char)c);
                     Pattern pattern = Pattern.compile(
                            _____________ Pattern.CASE_INSENSITIVE);
                     Matcher matcher =________;
                     while (marcher. find ())
                     {
                         int start = matcher.start();
                         int end = matcher.end();
                         String match = buffer.substring(start,  end);
                         System.out.println (match);
                     }
              }
              catch  (Exception excption)
              {
                     System. out.println (excption. getMessage ());
              }
              System.exit(O);
       }
   }

选项

答案patternString pattern.matcher(buffer)

解析 本题考查知识点:输入输出流和正则表达式解题思路:程序首先使用InputStreamReader的实例“in”从标准输入中获取用户输入的文件名,并将结果存放在“fileName”字符串中。if语句用来判断用户输入的文件名是否为空,如果为空则退出程序,不做任何处理。然后根据文件名读取相应的文件内容存放在StringBuffer的实例“buffer”中。然后建立起与正则表达式对应的模式对象“pattem”,并与“buffer”帮定,生成一个匹配器“matcher”。最后使用while循环查找到相应的字符串。
   Patter的compile方法用来将正则表达式编译成模式对象。compile方法的第一个参数是正则表达式字符串,所以第一个空的答案是“patternString”。
   第二个空用来建立一个匹配器。模式对象建立匹配器的方法是matcher(string),其中string是需要做模式匹配的兑现,本题中需要做模式匹配的对象是“buffer”。
转载请注明原文地址:https://kaotiyun.com/show/Xcnp777K
0

最新回复(0)