我正在從Fortran轉換爲Java的項目。很多改變都是直截了當的改變。然而,在某些情況下,我的情況是這樣的:如何從Java中的字符串中提取未知長度的值?
IF (___) GOTO number
將改爲 } while (___);
MOD(___,___)
將成爲___ % ___
凡___
表示未知長度的字符。
我該如何去查找和替換這些字符串?
謝謝!
讓我更加清楚:項目必須保持原樣。我意識到有這樣的工具,我意識到這並不理想。這是不幸的,所以我怎麼去做我所要求的?
我正在從Fortran轉換爲Java的項目。很多改變都是直截了當的改變。然而,在某些情況下,我的情況是這樣的:如何從Java中的字符串中提取未知長度的值?
IF (___) GOTO number
將改爲 } while (___);
MOD(___,___)
將成爲___ % ___
凡___
表示未知長度的字符。
我該如何去查找和替換這些字符串?
謝謝!
讓我更加清楚:項目必須保持原樣。我意識到有這樣的工具,我意識到這並不理想。這是不幸的,所以我怎麼去做我所要求的?
您確實可能需要通過對Fortran代碼的語言感知解析來完成此操作,而不僅僅是通過搜索和替換。你也許可以製作出一些覆蓋你所有情況的正則表達式,但它總是會變得討厭而且容易出錯。
我建議您查看this project,它提供Fortran語法分析工具(以Java語言編寫),它允許您操作Fortran抽象語法樹,然後代碼恰當地生成Java,如果這確實是您正在做的事情。
用於連接Fortran解析器的+1,當某人已經發現了所有的陷阱時,不需要重新發明輪子。 – ajp15243 2013-04-30 06:32:18
我很欣賞這個事實,但是項目必須保持原樣。你能否爲我提出的問題提供解決方案,儘管它可能不是解決問題的理想方式? – xtraorange 2013-04-30 18:22:07
查找'Java正則表達式',或者使用ajp15243提供的鏈接。這將允許你寫字符串匹配,但它可能會很糟糕。 – Gian 2013-04-30 19:33:38
[正則表達式](http://docs.oracle.com/javase/tutorial/essential/regex/)? – ajp15243 2013-04-30 06:29:26
您正在開發一個自動將Fortran轉換爲Java的項目嗎? – Apurv 2013-04-30 06:29:32
要做到這一點,你將不得不編寫一個Fortran解析器。 – NPE 2013-04-30 06:31:05