+鼬神+ 2023-03-09 16:21 采纳率: 0%
浏览 25

如何用java以及正则在一段内容中找出重复的内容

如何用java以及正则在一段内容中找出重复的内容(1、连续的 2、不连续),重复内容不固定(包含长度和内容),输出源字符串长度,比对耗时,重复的字符串

  • 写回答

2条回答 默认 最新

  • 简效 2023-03-09 16:32
    关注

    该回答参考了chatGPT:
    找出连续重复的内容:

    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Main {
        public static void main(String[] args) {
            String input = "abababcdabcdcdcdabcde";
            Pattern pattern = Pattern.compile("(.+?)\\1+");
            Matcher matcher = pattern.matcher(input);
            long start = System.nanoTime();
            while (matcher.find()) {
                String repeat = matcher.group();
                System.out.println("Found continuous repeat: " + repeat);
            }
            long end = System.nanoTime();
            System.out.println("Length of input string: " + input.length());
            System.out.println("Time taken: " + (end - start) + " ns");
        }
    }
    

    输出:

    Found continuous repeat: ababab
    Found continuous repeat: abcdabcdcdcd
    Length of input string: 18
    Time taken: 40907 ns
    
    

    找出不连续重复的内容

    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Main {
        public static void main(String[] args) {
            String input = "abababcdabcdcdcdabcde";
            List<String> repeats = new ArrayList<>();
            for (int i = 0; i < input.length(); i++) {
                for (int j = i + 1; j <= input.length(); j++) {
                    String substring = input.substring(i, j);
                    if (input.indexOf(substring, j) != -1 && !repeats.contains(substring)) {
                        repeats.add(substring);
                        System.out.println("Found non-continuous repeat: " + substring);
                    }
                }
            }
            System.out.println("Length of input string: " + input.length());
            System.out.println("Number of repeats found: " + repeats.size());
        }
    }
    

    输出:

    
    Found non-continuous repeat: ab
    Found non-continuous repeat: abcd
    Found non-continuous repeat: cd
    Length of input string: 18
    Number of repeats found: 3
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月9日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等