我没有找到解决我遇到的具体问题的方法。我正在做一些XML解析,其中我想操纵字符串中的单词。
鉴于我有一个案例:'word, word word word'
- 单词可以是任何字符串,因为我不知道它们会提前是什么。
我希望能够操纵字符串以获得以下结果:'word., word word. word'
- 所以,第一个单词和第三个单词我想将'.'
附加到结尾它们。
对此有什么合适的方法?正则表达式会是最好的方法吗?
答案 0 :(得分:0)
假设单词将使用相同的字符分隔,我认为最简单的方法是使用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的情况下编写了它)
当然,我对正则表达式并不是很熟悉,你还没有真正给出那么多信息,因此正则表达式可能是一个选项,但我认为这需要你知道单词的长度。 (s),至少。
答案 1 :(得分:0)
如果您想使用正则表达式,那么以下内容应该适合您。正则表达式分为3组,然后可以在replaceAll中的替换正则表达式中引用。
System.out.println("hello, my name is"
.replaceAll("(\\w+)(,\\s*\\w+\\s+\\w+)(\\s+\\w+)", "$1.$2.$3") );