コード例 #1
0
  private void changeRules(Rules rules) {
    instance.rules = rules;
    instance.preBmBc = BoyerMoore.preBmBc(rules);
    instance.preBmGs = BoyerMoore.preBmGs(rules);
    instance.suffixes = BoyerMoore.suffixes(rules);

    preSkip = new HashMap<>();

    rules.forEach(
        rule -> {
          preSkip.put(rule, new ArrayList<>(Collections.nCopies(rule.getLength(), 0)));
        });
  }
コード例 #2
0
 public static ApostolicoGiancarlo getInstance(Rules rules) {
   if (instance == null) {
     instance = new ApostolicoGiancarlo();
   }
   instance.changeRules(rules);
   return instance;
 }