1. 程式人生 > >java程式碼轉HTML(原始碼轉換)

java程式碼轉HTML(原始碼轉換)

/*為了原始檔能正常顯示,我們必須為文字加上適當的標籤。對特殊的符號進行轉義處理。
常用的有:
HTML 需要轉義的實體:
&     --->&
空格         ---> 
<     ---><
>     --->>
"     --->  "
此外,根據原始碼的特點,可以把 TAB 轉為4個空格來顯示。
TAB   --->&nbsp;&nbsp;&nbsp;&nbsp;
為了顯示為換行,需要在行尾加<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;
		
	}

}