Removing consecutive duplicates words out of text using Regex and displaying the new text

后端 未结 3 1153
生来不讨喜
生来不讨喜 2021-01-03 03:33

Hy,

I have the following code:

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.*;

/
public  class Reg         


        
3条回答
  •  时光取名叫无心
    2021-01-03 04:18

    Bellow it is your code. I have used lines to split text and Tim's regular expression.

    import java.util.Scanner;
    import java.io.*;
    import java.util.regex.*;
    import java.util.ArrayList;
    /**
     *
     * @author Marius
     */
    public class RegexSimple41 {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
           ArrayList  manyLines = new ArrayList();
           ArrayList  noRepeat = new ArrayList(); 
            try
            {
                Scanner myfis = new Scanner(new File("D:\\myfis41.txt"));
    
                while(myfis.hasNext())
                {
                    String line = myfis.nextLine();
                    String delim = System.getProperty("line.separator");
                    String [] lines = line.split(delim);
    
                    for(String s: lines)
                    {
                        if(!s.isEmpty()&&s!=null)
                        {
                            manyLines.add(s);
                        }
                    }
                }
                if(!manyLines.isEmpty())
                        { System.out.print("Original text\n");
                            for(String s: manyLines)
                            {
                                System.out.println(s);
                    }
                            }
                if(!manyLines.isEmpty())
                        { 
                            for(String s: manyLines)
                            {
                                String result = s.replaceAll("(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+", "$1");
                                noRepeat.add(result);
                    }
                            }
                 if(!noRepeat.isEmpty())
                        { System.out.print("Remove duplicates\n");
                            for(String s: noRepeat)
                            {
                                System.out.println(s);
                    }
                            }
    
            }
    
            catch(Exception ex)
            {
                System.out.println(ex);
            }
        }
    
    }
    

    Good luck,

提交回复
热议问题