2016-09-29 87 views
2

爲什麼不能正常工作?在Java中的while循環中替換字符串中的字符

while ((line = file.readLine()) != null) { 
      String myLine = line; 
      input += "[" + myLine.replace(":", "]") + '\n'; 
      } 

領先「[」插入與行後跟一個新行(\ n)的,但即使它發生在每一行它不會取代我的性格。

正如你可以告訴我正在打開一個文件,逐行讀取它,並嘗試依次修改每一行。一切工作正常,除了字符替換。

這是我的示例文本。

gen|1|1|בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃ 

這就是我想要的。

[gen|1|1|]בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽר 

這就是我得到的。

[gen|1|1|בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃ 

感謝您的幫助,因爲我是新來的,也是編程。

+1

你的文件的內容是什麼樣的? – mangotang

+5

向我們展示一些示例輸入,預期輸出和實際輸出。 – shmosel

+1

我已經添加了一些示例。 –

回答

3

這是因爲輸入文本不包含冒號。看起來像冒號的字符實際上是「:」U + 05C3:HEBREW PUNCTUATION SOF PASUQ。

嘗試使用「\ u05C3」而不是「:」。

+0

斑點! – Simon

+0

實際上,這不起作用,因爲該字符實際上是從右向左希伯來語部分文本中的_last_字符。 –

+0

偉大的提示!這絕對是問題所在,然而它將我的支架插入到行尾,而不是與替換後的符號位於同一位置。正如你剛纔所說的。 –