【发布时间】:2016-06-03 10:52:04
【问题描述】:
我试图弄清楚如何编写调用的方法,该方法不会打印< 和> 之间的字符 - 基本上在标签之间。
我需要在 while 循环中使用:length()、indexOf(char) 和 substring(int, int)。
这是我所拥有的:
import java.io.*;
import java.util.*;
public class Project {
public static void main(String[] args) throws FileNotFoundException {
// final String text = "";
final String filename = "HTML_2.txt";
try (Scanner input = new Scanner(new File(
System.getProperty("user.home"), "HTML_2.txt"))){ //"C:\CS210DataFiles"
while (input.hasNextLine()) {
String text = stripHtmlTags(input.nextLine());
System.out.print(stripHtmlTags(text));
}
}
public static String readFile(String filename) throws FileNotFoundException {
Scanner input = new Scanner(new File("HTML_2.txt"));
String text = "";
while (input.hasNextLine()) {
text += input.nextLine() + "\n";
}
return text;
}
public static void stripHtmlTags(String filename) throws FileNotFoundException {
String text = readFile(filename);
int leftTag = text.indexOf("<");
while (leftTag >= 0) {
String start = text.substring(0, leftTag);
text = text.substring(leftTag, text.length());
int rightTag = text.indexOf(">");
text = start + text.substring(rightTag + 1, text.length());
leftTag = text.indexOf("<");
}
System.out.print(text);
}
}
现在 main 方法出了点问题
【问题讨论】:
-
您能向我们展示示例输入和预期输出吗?也许正则表达式可以帮助你?
-
是的,请发布示例/输出。我不确定这个项目是否会以这种方式构造输入,但如果 位于两个单独的行上,则 stripHtmlTags 方法将不起作用。
-
不,正则表达式和简单地替换标签内的单词对我不起作用。
-
@JuliaBrosseau - 但是,样本输入和预期输出是什么?没有 I/O,人们如何回答?
-
输入:
我的网页 这里有很多我的猫的照片,还有我的非常酷博客页面,其中包含 关于我的拉斯维加斯之旅的精彩内容。
这是我的猫: 正文>
标签: java tags substring indexof