java程式碼轉HTML(原始碼轉換)
阿新 • • 發佈:2019-02-03
/*為了原始檔能正常顯示,我們必須為文字加上適當的標籤。對特殊的符號進行轉義處理。
常用的有:
HTML 需要轉義的實體:
& --->&
空格 --->
< ---><
> --->>
" ---> "
此外,根據原始碼的特點,可以把 TAB 轉為4個空格來顯示。
TAB --->
為了顯示為換行,需要在行尾加<br/>標籤。
為了顯示美觀,對關鍵字加粗顯示,即在關鍵字左右加<b>標籤。比如:
<b>public</b>
對單行註釋文字用綠色顯示,可以使用<font>標籤,形如:
<font color=green>//這是我的單行註釋!</font>
注意:如果“//”出現在字串中,則注意區分,不要錯誤地變為綠色。
不考慮多行註釋的問題 .... 或 *//** .... *//*
你的任務是:編寫程式,把給定的原始檔轉化為相應的html表達。
【輸入、輸出格式要求】
與你的程式同一目錄下,存有原始檔 a.txt,其中存有標準的java原始檔。要求編寫程式把它轉化為b.html。
例如:目前的 a.txt 檔案與 b.html 檔案就是對應的。可以用記事本開啟b.html檢視轉換後的內容。
常用的有:
HTML 需要轉義的實體:
& --->&
空格 --->
< ---><
> --->>
" ---> "
此外,根據原始碼的特點,可以把 TAB 轉為4個空格來顯示。
TAB --->
為了顯示為換行,需要在行尾加<br/>標籤。
為了顯示美觀,對關鍵字加粗顯示,即在關鍵字左右加<b>標籤。比如:
<b>public</b>
對單行註釋文字用綠色顯示,可以使用<font>標籤,形如:
<font color=green>//這是我的單行註釋!</font>
注意:如果“//”出現在字串中,則注意區分,不要錯誤地變為綠色。
不考慮多行註釋的問題 .... 或 *//** .... *//*
你的任務是:編寫程式,把給定的原始檔轉化為相應的html表達。
【輸入、輸出格式要求】
與你的程式同一目錄下,存有原始檔 a.txt,其中存有標準的java原始檔。要求編寫程式把它轉化為b.html。
例如:目前的 a.txt 檔案與 b.html 檔案就是對應的。可以用記事本開啟b.html檢視轉換後的內容。
用瀏覽器開啟b.html則可以看到顯示的效果.*/
--------------------------------------------------------------------------code---------------------------------------------------------------
import java.io.BufferedReader; import java.io.FileReader; import java.io.PrintWriter; /*java原始碼轉換成HTML*/ public class AL14 { /** * @param args */ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new FileReader("G:/a.txt")); PrintWriter pw = new PrintWriter("G:/b.html"); pw.write("<html><body>\n"); String str = null; while ((str = br.readLine()) != null) { pw.write(process(str)); } pw.write("</body></html>"); br.close(); pw.close(); System.out.println("ok"); } public static String process(String s) { StringBuilder sb = new StringBuilder(); char[] ch = new char[50]; ch = s.toCharArray(); for (int i = 0; i < ch.length; i++) { switch (ch[i]) { case '&': sb.append("&"); break; case ' ': sb.append(" "); break; case '<': sb.append("<"); break; case '>': sb.append(">"); break; case '"': sb.append(" \" "); break; case '\t': sb.append(" "); break; default: sb.append(ch[i]); } } String string = sb.toString(); string=string.replaceAll("public", "<b>public</b>"); string = string.replaceAll("class", "<b>class</b>"); string = string.replaceAll("static", "<b>static</b>"); string = string.replaceAll("main", "<b>main</b>"); string = string.replaceAll("void", "<b>void</b>"); int n=string.lastIndexOf("//"); if(n!=-1){ String temp=string.substring(n); string=string.replaceAll(temp, "<font color=green>"+temp+"</font>"); } string+="<br/>\n"; return string; } }