[英]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.