質問: p.matcher(str); if (m.find()) { System.out.println("改行なし"); return true; } else { System.out.println("改行あり"); return false; } } ```
回答: 簡単なのはfindではなくmatchesを使うことでしょうか。その際は`^`,`$`は不要です。matchesは与えられた正規表現が文字列全体とマッチするかを判定しますので。 ``` static Pattern pat = Pattern.compile("[0-9]{4}"); public static void main(String[] args) { // 検索する文字列を用意 String str = "4567\n"; // 正規表現のパターンを作成 Matcher m = pat.matcher(str); if (m.matches()) { System.out.println("数字4桁"); } else { System.out.println("マッチせず"); } } ``` 本件に関係ないですが... (1) Patternインスタンスは不変(immutable)です。ゆえに何度もパターンマッチに用いるならstaticフィールドに覚えておくのが効率的だと思います。 (2) 多分例としてコードを作成した際にミスしただけだと思いますがmainはvoidなので値は返せませんね?