Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                    
                
        

我必须使用某些规则编辑文本:

同一单词中的重复字母将减少为单个字母。

"Questions" instead of "QuestionssSsS"


单词之间的多个空格将减少到一个空格

"go to the cinema" instead of "go    to   the     cinema"


与单词分开的单个字母将连接到单词

"first ten person" instead of "firs t ten person"


例如 :

String s = "I am enouuugGh of an artis t to draw         freely upon my imagination. ImaginatioOO n is more importan t than      knowledge. KKkKkKnowledge is limited. Imagination encircles the wwWorl d.";


预期产量:

I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world.


请提供建议和意见。

最佳答案

String s = "I am enouuugGh of an artis t to draw         freely upon my imagination. ImaginatioOO n is more importan t than      knowledge. KKkKkKnowledge is limited. Imagination encircles the wwWorl d.";
System.out.println(s);
System.out.println("========================================================");
s = s.replaceAll("\\s+"," ");
s = s.replaceAll("(?i)(\\w)\\1+","$1");
s = s.replaceAll("(\\w+) (\\w)(?=[ \\.\\?!,])","$1$2");
System.out.println(s);


输出:I am enough of an artist to draw frely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world.

 ==> \\s+ Several whitespace characters
 ==> \\w means A word character, short for [a-zA-Z_0-9]
 ==> \\w+ will represent one or more characters of \\w class
 we will also place it in group (\\w+) - this will be 2nd group
 ==> Pattern.CASE_INSENSITIVE flag is (?i)
 ==> $number is backreferrence

09-26 17:50