我正在尝试以编程方式将 Java 源文件转换为 HTML 文件,PrintWriter
用于写入单独的 .html 文件
示例源文件可能如下所示。
HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
while (true) {
System.out.println("Hello World!");
// Disregard this ridiculous example
}
}
}
我所有的打印工作都很好,除了我有压痕问题。Everyting 左对齐。
HelloWorld.html(在浏览器中看到):
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
while (true) {
System.out.println("Hello World!");
// Disregard this ridiculous example
}
}
}
程序源代码片段:我希望这个程序为我确定,在将 java 源代码中的哪一行转换为 HTML 时应该缩进。我不想手动执行,因为那样我就必须为每个源文件编写不同的程序
PrintWriter output = new PrintWriter(newFile);
output.print("<!DOCTYPE html><html><head>"
+ "<style>"
+ ".keyword { font-weight: bold; color: blue}"
+ "</style></head><body>");
while (input.hasNextLine()) {
String line = input.nextLine();
String[] tokens = line.split(" ");
for (int i = 0; i < tokens.length; i++) {
if (keywordSet.contains(tokens[i])) {
// Gives Java keyword bold blue font
output.print("<span class=\"keyword\">");
output.print(tokens[i] + " ");
output.print("</span>");
} else {
output.print(tokens[i] + " ");
}
}
output.print("<br/>");
}
output.print("</body><html>");
output.close();
注意:我split()
每行的原因是因为可能在该行中的某些关键字正在 html 文件中突出显示,我使用 a 执行此操作<span>
,如我的代码中所述
在程序源代码中,我显然没有任何缩进的实现,所以我知道为什么我的html文件中没有缩进。我真的不知道如何去实现这个。
我如何确定哪一行得到缩进,以及多少缩进?
编辑: 我的猜测:在拆分之前确定行中有多少空格,将其保存到变量中,然后在打印行中的其他任何内容之前以 的形式打印这些空格。但是我如何确定行首有多少空格?