簡體   English   中英

使用Java在字符串的特定位置替換/附加多個子字符串

[英]Replacing/Append multiple substrings at specific locations in a string using Java

對於我遇到的特定問題,我尚未找到任何解決方案。 我正在做一些XML解析,我想在其中處理字符串中的單詞。

給定我的情況: 'word, word word word' -單詞可以是任何字符串,因為我不知道它們會是什么。

我希望能夠操縱字符串以獲得以下結果: 'word., word word. word' 'word., word word. word' -因此,我想在第一個單詞和第三個單詞后面加上一個'.' 到他們的最后。

什么是合適的方法呢? 正則表達式將是最好的方法嗎?

假定單詞將使用相同的字符分隔,我認為最簡單的方法是使用indexOf(" ") ,然后使用substring方法在返回的索引之前添加一個點。 請記住,您還可以使用lastIndexOf(" ")將點附加到第三個單詞,或者甚至可以指定indexOf的開始位置,即

String words = "word, word word word";
String newWords

int space1 = words.indexOf(" ");

newWords = words.substring(0, space1) & "." & words.substring(space1 + 1);

int lastSpace = newWords.lastIndexOf(" ");

newWords = newWords.subString(0, lastSpace) & "." & newWords.subString(lastSpace + 1);

(我認為類似的方法是可行的,但是我還沒有進行測試,而是在沒有IDE的情況下編寫的)

當然,我對正則表達式不是很熟悉,您還沒有真正提供太多信息,因此正則表達式可能是一個選擇,但我認為這需要您知道單詞的長度,至少。

如果您想使用正則表達式,那么以下內容將為您工作。 該正則表達式分為3組,然后可以在replaceAll中的替換正則表達式中引用。

System.out.println("hello, my name is"
    .replaceAll("(\\w+)(,\\s*\\w+\\s+\\w+)(\\s+\\w+)", "$1.$2.$3") );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM