繁体   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