Skip to content

Instantly share code, notes, and snippets.

@umuturan
Last active June 15, 2016 20:12
Show Gist options
  • Save umuturan/79a4a472c5c2dbad3e52 to your computer and use it in GitHub Desktop.
Save umuturan/79a4a472c5c2dbad3e52 to your computer and use it in GitHub Desktop.
Lab02-HTML
import java.util.ArrayList;
import cs1.SimpleURLReader;
public class HTMLFilteredReader extends MySimpleURLReader {
public HTMLFilteredReader(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public String getUnfilteredPageContents() {
// called to return the original page complete with html codes.
return super.getPageContents();
}
@Override
public String getPageContents() {
int length;
int a, b;
boolean done;
String finalString;
a = 0; // first index to omit
b = 0; // last index to omit
done = false;
finalString = "";
length = super.getPageContents().length();
for (int i = 0; i < getUnfilteredPageContents().length(); i++) {
if (getUnfilteredPageContents().charAt(i) == '<') {
a = i;
}
if (getUnfilteredPageContents().charAt(i) == '>') {
b = i;
}
if (a != 0 && b != 0) {
finalString += getUnfilteredPageContents().substring(b + 1, a);
a = 0;
b = 0;
}
}
return finalString;
}
}
import cs1.SimpleURLReader;
public class Lab02 {
public static void main(String args[]){
SimpleURLReader s1;
s1 = new SimpleURLReader("http://www.cs.bilkent.edu.tr/~david/housman.htm");
System.out.println(s1.getPageContents());
System.out.println("------------------------------------");
System.out.println(s1.getLineCount());
}
}
import cs1.SimpleURLReader;
public class MySimpleURLReader extends SimpleURLReader {
String url;
public MySimpleURLReader(String arg0) {
super(arg0);
url=arg0;
// generated subclass constructor
}
public String getURL() {
return url;
/* returns the url String used to create the SimpleURLReader object
*/
}
public String getName() {
boolean check;
int i;
i=0;
check=false;
for(i=url.length()-1; (!check) && i>0;i--){
if(url.charAt(i)== '/'){
check=true;
}
}
return url.substring(i+1,url.length());
/* that returns the filename part of the url ,i.e, the part of the url
* following the last '/' character
*/
}
@Override
public String getPageContents() {
/*
* fixes the bug in SimpleURLReader's getPageContents() method whereby the
* String "null" is added to the beginning of the String it returns. Do
* this by overriding the corresponding method in your new sub-class.
*/
return super.getPageContents().replace("null", "");
}
}
import java.util.ArrayList;
import cs1.SimpleURLReader;
public class SuperHTMLFilteredReader extends HTMLFilteredReader {
public SuperHTMLFilteredReader(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public ArrayList<String> getLinks() {
ArrayList<String> list;
ArrayList<Integer> listInt;
ArrayList<Integer> listLast;
String addList;
boolean check;
addList = "";
list = new ArrayList<String>();
listInt = new ArrayList<Integer>();
listLast = new ArrayList<Integer>();
check = true;
for (int i = 0; i < getUnfilteredPageContents().length() - 3; i++) {
if (getUnfilteredPageContents().charAt(i) == 'h' && getUnfilteredPageContents().charAt(i + 1) == 'r'
&& getUnfilteredPageContents().charAt(i + 3) == 'f') {
listInt.add(i + 3); // the index of f at "href"
}
}
for (int i = 0; i < listInt.size(); i++) {
check = true;
for (int j = listInt.get(i) + 2; j < getUnfilteredPageContents().length() && check; j++) {
if (getUnfilteredPageContents().charAt(j) == '>') {
listLast.add(j);
check = false;
}
}
}
for (int i = 0; i < listInt.size(); i++) {
list.add(getUnfilteredPageContents().substring(listInt.get(i) + 3, listLast.get(i) - 1));
}
return list;
}
public double overHead() {
return getPageContents().length() * 100 / getUnfilteredPageContents().length();
}
}
public class TestHTMLFilteredReader {
public static void main(String[] args) {
// TODO Auto-generated method stub
HTMLFilteredReader read = new HTMLFilteredReader("http://www.cs.bilkent.edu.tr/~david/housman.htm");
System.out.println(read.getPageContents());
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class TestMenu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan;
String url;
int input;
ArrayList<MySimpleURLReader> list;
int index;
list = new ArrayList<MySimpleURLReader>();
scan = new Scanner(System.in);
do {
System.out.println("-----------------------------------------------------");
System.out.println("(1) Enter the url of poem to add to collection");
System.out.println("(2) List all poems in the collection ");
System.out.println("(3) Quit ");
System.out.println("-----------------------------------------------------");
System.out.println("please enter your choice :");
input = scan.nextInt();
scan = new Scanner(System.in);
if (input == 1) {
System.out.println("Enter the url:");
url = scan.nextLine();
if (url.indexOf("htm")!=-1) {
HTMLFilteredReader reader = new HTMLFilteredReader(url);
list.add(reader);
} else {
MySimpleURLReader reader = new MySimpleURLReader(url);
list.add(reader);
}
}else if(input ==2){
for (int i=0 ; i<list.size(); i++){
System.out.println("--"+i+"--"+list.get(i).getName());
}
System.out.println("please enter the index :");
index = scan.nextInt();
if(index<list.size() && index >=0){
System.out.println(list.get(index).getPageContents());
System.out.println("--------------------------------------");
}else if( index == list.size()){
}else
System.out.println("invalid input!");
}
} while (input != 3);
}
}
public class TesMytSimpleURLReader {
public static void main(String[] args){
MySimpleURLReader r1;
r1= new MySimpleURLReader("http://www.cs.bilkent.edu.tr/~david/housman.txt");
System.out.println(r1.getPageContents());
System.out.println(r1.getURL());
System.out.println(r1.getName());
}
}
public class TestSuperHTMLFilteredReader {
public static void main(String[] args) {
// TODO Auto-generated method stub
SuperHTMLFilteredReader supRead = new SuperHTMLFilteredReader("http://www.cs.bilkent.edu.tr/~david/index.html");
for(int i = 0 ; i< supRead.getLinks().size();i++){
System.out.println(supRead.getLinks().get(i));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment