2011-10-26 85 views
0

因此,我正在編譯一個將文本文件編譯爲機器代碼的編譯器,以便操作系統從SD卡讀取數據。代碼將如下所示:(Ra text_to_store)將文本存儲到字符串槽a中。大部分似乎是可行的在Java代碼中檢測和刪除單行註釋

mystring=mystring.replace("String ","R"); 
mystring=mystring.replace("=",""); 
mystring=mystring.replace(";",""); 
//cannot replace " with nothing, how do I get around this? 

as this turns String a = text_t_ store;轉換成正確的代碼。

但當然不是所有的都可以用這個來完成。例如,我需要擺脫評論(/ /評論的東西),這是不適用於.replace,以及一些其他的事情。這可能很簡單,但我找不到它!

p.s.你還可以提供鏈接/幫助文本格式?例如int var;需要轉換成RAM的槽號碼。提前致謝!

回答

0

使用mystring.replaceAll使用正則表達式,如

mystring = mystring.replaceAll("//.*$",""); 

從//替換用什麼行結束

+6

可能值得添加一個註釋,這可能會搞砸了代碼。例如一個源代碼行,比如'String url =「http://example.com/...」;換句話說,天真的字符串替換隻能讓你獲得目標,在某些時候你需要一個合適的詞法分析器......) – searlea

+1

這是事實,它會把它搞砸。也許一個檢查,看看它是否在線的前端。我認爲這是理論上的,因爲你永遠不想用string.replace編譯器 – Woody

+0

我不會使用URL,但它的工作原理!謝謝!現在要弄清楚如何做瓦爾斯... –

0

你可以擁有一切符合的replaceAll 1線和正則表達式

mystring=mystring.replaceAll("(?:.|\\s)*String ([\\w]+)=(.*?);(?:.|\\s)*","R$1 $2"); 
+0

根據netbeans 4非法轉義字符,但它運行。但是,它對文本沒有任何影響。 –

+0

對不起忘了格式化爲java,現在修復 – Blem

+0

嗯...仍然沒有影響文字。 –