2019年4月30日火曜日

2019/04/24(水) Javaプログラミング教科書

●Javaプログラミング教科書
続き。索引付けと修正を行った
・索引付け支援プログラムに次のクラスを追加した。Java の正規表現がらみのクラスが使いづらくてなんとかしたかったからであるが、大した改善にはなっていない
/**
 * 正規表現マッチングを支援するためのクラス。
 * JavaのPatternとかMatcherとかが使いづらいので作った。
 */
class PatternMatcher {
  private Pattern pattern;

  /**
   * コンストラクタ。
   *
   * @param regexp 正規表現パターン。
   */
  public PatternMatcher(String regexp) {
    pattern = Pattern.compile(regexp);
  }

  /**
   * 文字列が正規表現に合うかどうかを調べる。
   * 合うならStringの配列を返し、合わなければnullを返す。
   * 配列の0番目の要素はパターンに合った部分全体。
   * 1番目以降はパターン内の各グループに合った部分。
   *
   * @param s 対象文字列。
   * @return 配列もしくはnull。
   */
  public String[] match(String s) {
    Matcher matcher = pattern.matcher(s);
    if (matcher.matches()) {
      String[] groups = new String[matcher.groupCount() + 1];
      for (int i = 0; i < groups.length; i++) {
        groups[i] = matcher.group(i);
      }
      return groups;
    } else {
      return null;
    }
  }
}

0 件のコメント:

コメントを投稿