但它删除了空格。我不想删除空格!我该怎么办?
原文
我喜欢这部电影,如此 好的好 好
删除重复项
我喜欢这部电影,它是 soso goodgood 。
这是我的代码:
String result = s.replaceAll("(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+", "$1$1");
答案 0 :(得分:1)
正如Dawood ibn Kareem在评论中指出的那样,如果你想在单词之间留一个空格,为什么不在你的替换模式中添加一个空格,如下所示:
String result = s.replaceAll("(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+", "$1 $1");
答案 1 :(得分:0)
您的代码是正确的,但您只需将$1$1
替换为$1
。
编辑: Dawood ibn Kareem在评论中也提到了这一点。
答案 2 :(得分:0)
/**
*
* @author Md. Amran Hossain
*/
public class DuplicateWordRemove {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String s = "like like like";
// TODO code application logic here
String result = s.replaceAll("(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+", "$1");
System.out.println(""+result);
}
}
像
答案 3 :(得分:0)
试试这个。
CFLAGS
答案 4 :(得分:0)
更新了答案
很抱歉发布第二个答案,但我只想确定您收到此答案的通知。
String h = s.replaceAll("(?i)\\b([a-z]+)\\b((?:\\s+\\1\\b)+)", "$2");
h = h.replaceAll("\\s+", " "));
这应该删除最后一个重复的单词:)