当前位置: 首页 > 知识库问答 >
问题:

使用扫描仪在爪哇中分离 html 的元素和标签

程项禹
2023-03-14

我是编程新手,刚刚开始学习java。我想尝试打开一个超文本标记语言文件,并将其划分为标记每个标记和内容每个内容。

我刚刚学会了如何使用扫描仪扫描,然后检查hasNext(),但我发现它只检查空格。

Scanner input = new Scanner (new FileReader("simple.html"));
while (input.hasNext())
{   
String content = input.next().toString();
System.out.println(content);
}

问题是...

//INPUT
<html><head><title>Hello</title></head>
<body>
<table border=1>
Hello World!
</table>
</body>
</html>

//DESIRED OUTPUT
<html>
<head>
<title>
Hello
</title>
</head>
<body>
<table border=1>
Hello
World!
</table>
</body>
</html>

//WHAT MY CODE OUTPUTS
<html><head><title>Hello</title></head>
<body>
<table
border=1>
Hello
World!
</table>
</body>
</html

有人能帮我吗?我被卡住了。请提供一份循序渐进的指南。

我见过一些第三方程序,这种自动化,但我想学习它的“编码方式”。因为我正在自学编程,特别是Java...

非常感谢!:)

共有1个答案

方和宜
2023-03-14

扫描仪不是您的工具,因为“”是单独的标记。

您需要一个字符一个字符地扫描输入,如果您是否在tag中,则使用标志。类似的东西(伪代码)

if char is > flag off
if char is < flag on
if char is whitespace and not flag than print ENDLINE
else if char is (ENDLINE or whitespace) and flag print whitespace
else print char

现在您可以通过从伪代码中创建Java来学习了。

 类似资料:
  • 我在使用扫描仪方面遇到了问题。getUserInput将scanner实例作为输入,并初始化来自scanner的指定大小的数组。例如:如果用户输入3,那么该方法将创建一个大小为3的数组。 然而,它一直说scnr不能转换为int......有什么建议吗?

  • 问题内容: 我有两个Java类,一个包含getter和setter,另一个是驱动程序类。我需要来自驱动程序类中扫描程序的用户输入才能属于第一类中的getter。用户输入必须为double,因为它将用作getter中的公式。 问题答案: 真正最好的是将所有内容都放在一个类中,没有理由将一个类分成两个类,只是为了使获取器和设置器与其他类分开,这 没有任何意义 。我确实想知道您是否误解了您的作业。 现在

  • 这个代码中的对象扫描仪有什么问题? 当我选择案例2时,我得到了这个错误: 我认为scanner首先声明为int,现在在切换之后,我用类型double收集答案。我不太确定,我需要更多地了解scanner类是如何工作的。

  • 问题内容: 我想为扫描器指定一个分隔符,该分隔符可以按某种模式进行拆分,但不会从令牌中删除该模式。我似乎无法完成这项工作,因为正则表达式所标识的所有内容也会作为分隔符的一部分被占用。有什么建议? 我的具体问题是,我的文件看起来像: 我想从文本/数字混合+行中分离出来,直到下一个文本/数字混合。我有正则表达式来标识它们,但是如上所述,因为定界符占用了我想要的内容,所以使用了它。 编辑:代码添加: 是

  • 我正试图用Java中的扫描器将一个字符串分成另外两个字符串。好像不起作用。我只能通过谷歌找到扫描仪用来读取控制台输入的例子。我从扫描仪的手册中找出了我做事情的方式,我不确定我错了什么。 第一个和第二个是空白的,我不知道为什么。

  • 问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和