2014-12-21 117 views
-1

這個問題在面試中被問到。 給定一個大文件,搜索並替換給定的單詞。有很多方法可以實現這個問題。 一些開放式問題 - 如何表示大文件?像一個char數組?通過流媒體讀者?等等。 我正在思考GapBuffer的問題。如果replacement string長於source字符串,然後增加字符數組的大小,使用ArrayCopy,然後執行以下操作:在大文件中實現字符串替換的最佳方法?

for (Each character going backward/reverse) { 
    shift character forward by 'x' steps. 'x' is (replacement string length - source length) * (frequency of source) 
    each time the match is found, then replace the string. 
    reduce 'x' by (replacement string length - source length) 
} 

什麼更好的建議?

+0

內存映射文件最好的方法 –

+0

@Lashane:在這種情況下,仔細闡述一下內存映射文件將如何提供幫助? –

+0

@JimMischel這將會超出本網站的格式 –

回答

0

我想這是已經被現有工具有效解決的問題之一,不應該自己實現。面試官可能想聽說使用像sed這樣的unix工具。

如果您被要求編寫代碼,那麼最簡單的方法是使用另一個輸出文件,並在緩衝區中逐個讀取文件,查找/替換,寫入輸出。

相關問題