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)
which is a linebreak and
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 ‘’. All HTML tags are either
or
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
in the input, start a new line.
. If you read a
Sample Input
Hallo, dies ist eine ziemlich lange Zeile, die in Htmlaber 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 irritierenHtml genauso wenig wiemehrere Leerzeilen.
Sample Output
立即学习“前端免费学习笔记(深入)”;
Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochenwird.Zweiproduzieren zwei Newlines. Es gibt auch noch das tag--------------------------------------------------------------------------------was einen Trenner darstellt. Zwei----------------------------------------------------------------------------------------------------------------------------------------------------------------produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Htmlgenauso wenig wie mehrere Leerzeilen.
注意点:(1) 每行最多80个字符,如果加上最后一个单词大于80,则最后一个单词移到下一行。(2) <hr>如果处于当前行字符数等于0的情况,则直接输出,否则先输出回车,在输出<hr>,只含有<br>和<hr>标签(3) 文章最后要有一个回车
equals表示的相等,是指向对象的相等;而compareTo的相等,是内容的相等。
不过其中有一个问题,很奇怪~我用equals老是PE,用compareTo就没问题了~~~弄不懂~
代码注释标识了!
有知道原因的大牛,请在评论区指点下,谢啦~
import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String result = new String(""); String str; while (sc.hasNext()) { str = sc.next(); if ("".equals(str)) { continue; } if ("<br>".equals(str)) { System.out.println(result); result = ""; } else if ("<hr>".equals(str)) { if (result.compareTo("")!=0) { // if (!"".equals(result)) {//会WA!!!原因,我也不清楚!!!! System.out.println(result); } gong.print(); result = ""; } else { String temp = result; if ((temp + " " + str).length() < 80) { if (!"".equals(result)) { result += " " + str; } else { result = str;// 每一行的第一个输入 } } else { System.out.println(result); result = str; } } } if (!("".equals(result))) { System.out.println(result); } }}class gong { static void print() { for (int i = 0; i < 80; i++) System.out.print("-"); System.out.println(); }}
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号