2013-02-14 28 views
0

我試圖在增量時用字符替換某些子字符串。例如,用增量字符替換子字符串

Input: Hello World 
Output: He...o Wor...d 

每當一個字符被發現,則增加要輸出的字符的數量,我也應該這樣做,沒有任何陣列或的ArrayList。

我被困在如何解決這個問題,我意識到我需要一個變量來計算子字符串被發現的次數,但至於替換它,我不知道該怎麼辦。

此外,我不希望被授予代碼,我寧願自己做。

編輯:子字符串不一定是一個字符,它可以是多個字符。即。 「他」,「llo」等。

+0

你可以使用replaceAll和正則表達式嗎? – assylias 2013-02-14 00:06:52

+0

是的,我可以。 /// – user123 2013-02-14 00:08:16

+1

然後它可能類似於'output = input.replaceAll(「l +」,「...」);' - 將每個l替換爲...或者如果第一個l是。和第二.. ..等你可以使用'input.replaceFirst(「l」,points);'在一個循環,其中點的點+ =「。」;'在每次迭代 – assylias 2013-02-14 00:10:35

回答

1

看看StringBuffer。您可以使用它來設置給定索引的索引並在給定索引處插入一個字符串。然後你可以通過嵌套循環來完成。外循環while循環搜索您需要替換的字符串。 使用while (buffer.indexOf (target) >=0) 內部e循環插入counter個'。'

+0

對不起,我沒有在OP中說過,我會在一分鐘內編輯它。但是需要被替換的子字符串可以是多個字符,「l」,「ld」,「He」等。 所以我不認爲我能夠使用charAt或setCharAt。 – user123 2013-02-14 00:14:16

+0

查看更新的建議。 – Thorn 2013-02-14 00:41:40

0

使用變量來計算子字符串出現的次數(如您所說)。使用該變量作爲循環的計數器以確定要打印多少個替換字符。

count = numberOfSubString() 

for 0 to count 
    replaceChar() 
0

你能用類似StringBuilder的東西嗎?您可以遍歷輸入字符串的每個字符,並且如果它不需要被替換,則可以將其轉換爲StringBuilder。如果確實需要更換,則需要多次特殊字符(根據您提及的計數器)。然後在最後,將StringBuilder轉換爲String(使用.toString)並返回。

+0

我試圖做這樣的事情,但是我需要替換的字符存儲爲字符串,因爲它們可以是任何字符組合。 我可能不清楚這一點,但我的意思是它可以是「l」,「ld」等需要替換的。 – user123 2013-02-14 00:13:14

+0

那麼我可能會建議做一些類似於@assylias的建議,並使用正則表達式和'replaceAll()'方法。 – Steph 2013-02-14 00:16:32