~~~
# Write a simple HTML Browser
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9459 Accepted Submission(s): 2678
~~~
Problem Description
If you ever tried to read a html document on a Macintosh, you know how hard it is if no Netscape is installed.
Now, who can forget to install a HTML browser? This is very easy because most of the times you don't need one on a MAC because there is a Acrobate Reader which is native to MAC. But if you ever need one, what do you do?
Your task is to write a small html-browser. It should only display the content of the input-file and knows only the html commands (tags) <br> which is a linebreak and <hr> which is a horizontal ruler. Then you should treat all tabulators, spaces and newlines as one space and display the resulting text with no more than 80 characters on a line.
Input
The input consists of a text you should display. This text consists of words and HTML tags separated by one or more spaces, tabulators or newlines.
A word is a sequence of letters, numbers and punctuation. For example, "abc,123" is one word, but "abc, 123" are two words, namely "abc," and "123". A word is always shorter than 81 characters and does not contain any '<' or '>'. All HTML tags are either <br> or <hr>.
Output
You should display the the resulting text using this rules:
. If you read a word in the input and the resulting line does not get longer than 80 chars, print it, else print it on a new line.
. If you read a <br> in the input, start a new line.
. If you read a <hr> in the input, start a new line unless you already are at the beginning of a line, display 80 characters of '-' and start a new line (again).
The last line is ended by a newline character.
Sample Input
~~~
Hallo, dies ist eine
ziemlich lange Zeile, die in Html
aber nicht umgebrochen wird.
<br>
Zwei <br> <br> produzieren zwei Newlines.
Es gibt auch noch das tag <hr> was einen Trenner darstellt.
Zwei <hr> <hr> produzieren zwei Horizontal Rulers.
Achtung mehrere Leerzeichen irritieren
Html genauso wenig wie
mehrere Leerzeilen.
~~~
Sample Output
~~~
Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen
wird.
Zwei
produzieren zwei Newlines. Es gibt auch noch das tag
--------------------------------------------------------------------------------
was einen Trenner darstellt. Zwei
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html
genauso wenig wie mehrere Leerzeilen.
~~~
~~~
import java.util.Scanner;
public class Main{
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = "",strCom = "",strComCopys = "", strCopy = "";
int countNum = 0;
while(scanner.hasNext())
{
str = scanner.next();
if(str.equals("<br>"))
{
strCom = "";
System.out.println();
}
else if(str.equals("<hr>"))
{
if(strCom.length() > 0)
System.out.println("\r\n--------------------------------------------------------------------------------");
else
System.out.println("--------------------------------------------------------------------------------");
strCom = "";
}
else if(str != " " && str.trim().length() > 0)
{
strComCopys = strCom;
if(strCom.length() > 0)
strCom += " " + str;
else
strCom += str;
countNum = strComCopys.length();
if(strCom.length() > 80)
{
System.out.println();
strCom = str;
countNum = 0;
strComCopys = "";
}
if(countNum == 0)
System.out.print(str);
else
System.out.print(" " + str);
}
strCopy = str;
}
System.out.println();
scanner.close();
}
}
~~~
- 前言
- 求和的问题ACM
- A+B问题acm
- 1091ACM求和
- 杭电ACM1092求和问题详解
- ACM杭电的1093求和问题
- 杭电ACM1094计算A+B的问题
- 杭电ACM1095解决A+B问题
- 杭电ACM1096求和问题
- 杭电Acm1001解决求和的问题
- 杭电ACM1008电梯问题C++
- 杭电ACM大赛2000关于ASCII码排序的问题
- 杭电ACM2006奇数的乘积
- 杭电ACM数值统计2008
- 杭电ACM1019求最大公约数
- 杭电ACM1108求最小公倍数
- 杭电ACM2035人见人爱的A^B
- 杭电ACM1061N^N求最右边的数的问题
- 杭电ACM1021裴波纳挈数AGAIN
- 杭电ACm1005求f(n)非递归
- 杭电ACM1071The area---------求积分面积
- 杭电ACM吃糖果问题
- 杭电ACm求数列的和2009
- 杭电ACM多项式求和--》2011
- 杭电ACM。。。sort
- 杭电ACM1004
- 杭电ACM2043密码的问题已经AC
- 杭电ACM2041楼梯问题
- 动态规划C++::杭电ACM1003
- 杭电ACM----2018母牛的故事
- 杭电ACM2007平方和与立方和
- 卢卡斯队列
- 全国软件2. 三人年龄
- 全国软件3. 考察团组成
- 全国软件--微生物增殖
- 全国软件填写算式
- 全国软件-----------猜生日
- 全国软件---------欧拉与鸡蛋
- Java经典算法四十例编程详解+程序实例
- 杭电ACMA + B Problem II问题解析
- 杭电ACM1018BigNumber解析
- 杭电ACM1088 Write a simple HTML Browser Java
- 杭电ACM1106排序Java代码
- 杭电ACM 1012 u Calculate e java
- 杭电ACM 1020 Encoding java解析
- 杭电1047 An Easy Task - java 解读
- 杭电ACM 1040 As Easy As A+B java 解读
- 杭电ACM 1041 Computer Transformation java代码详解AC
- 杭电ACM 1030 Delta-wave java代码解析