2013-04-30 24 views
0

我正在從Fortran轉換爲Java的項目。很多改變都是直截了當的改變。然而,在某些情況下,我的情況是這樣的:如何從Java中的字符串中提取未知長度的值?

IF (___) GOTO number 將改爲 } while (___);

MOD(___,___)將成爲___ % ___

___表示未知長度的字符。

我該如何去查找和替換這些字符串?

謝謝!


讓我更加清楚:項目必須保持原樣。我意識到有這樣的工具,我意識到這並不理想。這是不幸的,所以我怎麼去做我所要求的?

+2

[正則表達式](http://docs.oracle.com/javase/tutorial/essential/regex/)? – ajp15243 2013-04-30 06:29:26

+0

您正在開發一個自動將Fortran轉換爲Java的項目嗎? – Apurv 2013-04-30 06:29:32

+1

要做到這一點,你將不得不編寫一個Fortran解析器。 – NPE 2013-04-30 06:31:05

回答

4

您確實可能需要通過對Fortran代碼的語言感知解析來完成此操作,而不僅僅是通過搜索和替換。你也許可以製作出一些覆蓋你所有情況的正則表達式,但它總是會變得討厭而且容易出錯。

我建議您查看this project,它提供Fortran語法分析工具(以Java語言編寫),它允許您操作Fortran抽象語法樹,然後代碼恰當地生成Java,如果這確實是您正在做的事情。

+3

用於連接Fortran解析器的+1,當某人已經發現了所有的陷阱時,不需要重新發明輪子。 – ajp15243 2013-04-30 06:32:18

+0

我很欣賞這個事實,但是項目必須保持原樣。你能否爲我提出的問題提供解決方案,儘管它可能不是解決問題的理想方式? – xtraorange 2013-04-30 18:22:07

+0

查找'Java正則表達式',或者使用ajp15243提供的鏈接。這將允許你寫字符串匹配,但它可能會很糟糕。 – Gian 2013-04-30 19:33:38

相關問題