import java.io.*; import java.util.*; import java.net.*; class HrefReader { public HrefReader(String url) throws IOException { tr = new TagReader(url); } // return index of HREF href HrEf and so on in s private int hrefIndex(String s) { return s.toUpperCase().indexOf("HREF"); } // return the largest prefix of s that does not contain x with spaces trimmed private String trimFrom(String s, String x) { int k = s.indexOf(x); if (k!=-1) return s.substring(0,k).trim(); else return s.trim(); } // return the largest suffix of s that does not contain x with spaces trimmed private String trimUpThrough(String s, String x) { int k = s.indexOf(x); if (k!=-1) return s.substring(k+x.length()).trim(); else return s.trim(); } public String readLine() throws IOException { String tag; tag = tr.readLine(); while (tag!=null && hrefIndex(tag)==-1) tag = tr.readLine(); if (tag==null) return null; int k = hrefIndex(tag); tag = tag.substring(k+1).trim(); tag = trimUpThrough(tag,"="); tag = trimFrom(tag," "); if (tag.indexOf("\"")!=-1) { tag = trimUpThrough(tag,"\""); tag = trimFrom(tag,"\""); } if (tag.indexOf("'")!=-1) { tag = trimUpThrough(tag,"'"); tag = trimFrom(tag,"'"); } tag = trimFrom(tag,"#"); return trimFrom(tag,"?"); } private TagReader tr; // The TagReader to read tags from }