matchesメソッド - 萌えJava超入門
第十八章 Stringクラス

matchesメソッド

自身の文字列が、引数の正規表現に一致するかどうかを判定します。

public boolean matches(String regex)

目次

1.matchesメソッド


regex は、正規表現です。
自身の文字列が、regex に一致するかどうかを booleanで返します。
「一致する部分があるか」ではなく、「正規表現に完全に一致するか」を判定する点に注意ください。

書式
boolean boo = String#.matches("regex");
String# は String のインスタンスです。

比較
replaceAllメソッドや、
splitメソッドは、
正規表現 に 「一致する部分」を処理します。
matchesメソッドは、
一致する部分を探すような
使い方とは違う。


2.サンプルコード


まずは正規表現を使わずに、普通の文字列で使ってみましょう。

//Sample_matches.java
class Sample_matches{
    public static void main(String[] args){

            String regex = "abcd";
            System.out.println(regex);
            System.out.println("----------");

            String[] strs = {
              "abcd",
              "aabcd",
              "abcde"
            };
            boolean boo;

            for(String str : strs){
              boo = str.matches(regex);
              System.out.println(str + "\t" + boo);
            }

    }
}

コマンドライン
>cd ws
ws>javac Sample_matches.java
ws>java Sample_matches
abcd
----------
abcd    true   <----完全に一致
aabcd   false
abcde   false

完全に同じでないと
trueにならないんですね。
それだと
equalsメソッドと
変わらないんじゃない?
確かに。
このメソッドは、
正規表現がないと使えないな。


3.正規表現


重要
  文字列の集合を一つの文字列で表現する方法の一つです。

例えば、正規表現では「.」を「任意の一文字」として扱います。
   (いわゆるワイルドカードですね。)
正規表現で "かぴ.らさん" とすると、「.」の部分にあらゆる文字が一文字入る文字列の集合を表します。
matchesメソッドでは、この「文字列の集合」に該当すれば true を返します。

かぴらさんも
かぴらさんも
ってことっすね。
かぴらさんも
かぴらさんも
かぴらさんも?
まあそうだな。


4.サンプルコード2


//Sample_matches2.java
class Sample_matches2{
    public static void main(String[] args){
      String regex = "かぴ.らさん";
      System.out.println(regex);
      System.out.println("----------");

      String[] strs = {
        "かぴばらさん",
        "かぴぶらさん",
        "かぴけらさん",
        "かぴべらさん",
        "かぴわらさん",
        "にせかぴばらさん"
      };
      boolean boo;

      for(String str : strs){
        boo = str.matches(regex);
        System.out.println(str + "\t" + boo);
      }
    }
}

コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample_matches2.java
ws>java Sample_matches2
かぴ.らさん
----------
かぴらさん     true
かぴらさん     true
かぴらさん     true
かぴらさん     true
かぴらさん     true
にせかぴばらさん false



すでにちょっと難しいっス。
正規表現は結構重たい。
でも応用範囲がめちゃめちゃ広いんだ。
次のページで基本を紹介しよう。


お疲れ様でした。


© 2019 awasekagami