Write a method in JAVA called stripHtmlTags that accepts a Scanner representing
ID: 3555626 • Letter: W
Question
Write a method in JAVA called stripHtmlTags that accepts a Scanner representing an input file containing an HTML web page as its parameter, then reads that file and prints the file's text with all HTML tags removed. A tag is any text between the characters < and >. For example, consider the following text:
<html>
<head>
<title>My web page</title>
</head>
<body>
<p>
There are many pictures of my cat here,
as well as my <b>very cool</b> blog page,
which contains <font color="red">awesome
stuff about my trip to Vegas.</p>
Here's my cat now:<img src="cat.jpg">
</body>
</html>
If the file contained these lines, your program should output the following text:
My web page
There are many pictures of my cat here,
as well as my very cool blog page,
which contains awesome
stuff about my trip to Vegas.
Here's my cat now:
You may assume that the file is a well-formed HTML document and that there are no < or > characters inside tags.
Explanation / Answer
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class StripHtmlTags {
public static void stripHtmlTags(Scanner sc){
while( sc.hasNextLine()) {
int charPrinted=0;
String line = sc.nextLine();
for(int i=0; i<line.length(); i++){
if(line.charAt(i) == '<'){
while( i < line.length() && line.charAt(i++)!='>');
}
if( i< line.length() ){
System.out.print(line.charAt(i));
charPrinted++;
}
}
if( charPrinted >=1 )
System.out.println("");
}
}
public static void main(String[] args) {
File f = new File("htm.txt");
Scanner sc;
try {
sc = new Scanner(f);
stripHtmlTags(sc );
sc.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.