-1
這是我的問題:我有一個字符串,它是一個表達式。該表達式包含數字常量,變量,邏輯運算符。例如:4 * A & & B,X + 5> Y。 此外,我有一個翻譯地圖(字符串 - >字符串),它基本上翻譯變量。字符串操作(Java)
需要的輸出是翻譯的表達式。 由於此示例,簡單替換失敗:表達式是A & & X其中A - > XX,X-> B。簡單的替換,從A,導致更換X當表達式是XX & & X,然後我得到BB & B,其中期望輸出應該是XX & B.
有什麼建議?
編輯:我想一個可能的解決方案可以寫一個表達式編譯器,知道將表達式解析爲原子單元,以後我可以替換。我只是想知道是否有更簡單的解決方案
將字符串拆分爲變量/運算符列表,然後使用翻譯地圖替換每個變量。 –
簡單的拆分並不是那麼簡單 - 一些變量可以是不同變量的子字符串。如何執行拆分? – duduamar
如果你不想拆分,是否有可能創建另一個StringBuffer來存儲你的解析結果?使用偏移標誌指向表達式中的當前位置,並且一旦變量/運算符被替換,將其存儲到緩衝區中並移動偏移量。如果一個變量可以成爲另一個變量的一部分,那麼您的替換應該是貪婪或者不情願。 – Kleenestar