集册 Java实例教程 计算正则表达式出现在较大的String中的次数。

计算正则表达式出现在较大的String中的次数。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

627
提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
计算正则表达式出现在较大的String中的次数。
/*

 * Copyright 2013 Guidewire Software, Inc.

 */

/**

 * This class is based, in part, on org.apache.commons.lang.StringUtils and is intended

 * to break the dependency on that project.

 *

 * @author <a href="http://jakarta.apache.org/turbine/">Apache Jakarta Turbine</a>

 * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>

 * @author Daniel L. Rall

 * @author <a href="mailto:gcoladonato@yahoo.com">Greg Coladonato</a>

 * @author <a href="mailto:ed@apache.org">Ed Korthof</a>

 * @author <a href="mailto:rand_mcneely@yahoo.com">Rand McNeely</a>

 * @author Stephen Colebourne

 * @author <a href="mailto:fredrik@westermarck.com">Fredrik Westermarck</a>

 * @author Holger Krauth

 * @author <a href="mailto:alex@purpletech.com">Alexander Day Chaffee</a>

 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>

 * @author Arun Mammen Thomas

 * @author Gary Gregory

 * @author Phil Steitz

 * @author Al Chou

 * @author Michael Davey

 * @author Reuben Sivan

 * @author Chris Hyzer

 *  Johnson


 */
 /*
 来 自*
  n o w j a v a . c o m - 时代Java
 */

//package com.nowjava;


import java.util.regex.Pattern;

import java.util.regex.Matcher;


public class Main {

    public static void main(String[] argv) {

        String str = "nowjava.com";

        String regexp = "nowjava.com";

        System.out.println(countRegexpMatches(str, regexp));

    }


    /**

     * <p>Counts how many times the regexp appears in the larger String.</p>

     *

     * <p>A <code>null</code> or empty ("") String input returns <code>0</code>.</p>

     *

     * <pre>

     * countMatches(null, *)       = 0

     * countMatches("", *)         = 0

     * countMatches("abba", null)  = 0

     * countMatches("abba", "")    = 0

     * countMatches("abba", "a")   = 2

     * countMatches("abba", "ab")  = 1

     * countMatches("abba", ".b")  = 2

     * countMatches("abba", "xxx") = 0

     * </pre>

     *

     * @param str  the String to check, may be null

     * @param regexp  the regexp to count, may be null

     * @return the number of occurrences, 0 if either String is <code>null</code>

     */

    public static int countRegexpMatches(String str, String regexp) {

        if (isEmpty(str) || isEmpty(regexp)) {

            return 0;

        }//from 时 代      J a v a   公   众 号 - nowjava.com

        Pattern pattern = Pattern.compile(regexp);

        Matcher matcher = pattern.matcher(str);

        int i = 0;

        while (matcher.find()) {

            i++;

        }

        return i;

    }


    /**

     * <p>Checks if a String is empty ("") or null.</p>

     *

     * <pre>

     * StringUtils.isEmpty(null)      = true

     * StringUtils.isEmpty("")        = true

     * StringUtils.isEmpty(" ")       = false

     * StringUtils.isEmpty("bob")     = false

     * StringUtils.isEmpty("  bob  ") = false

     * </pre>

     *

     * <p>NOTE: This method changed in Lang version 2.0.

     * It no longer trims the String.

     * That functionality is available in isBlank().</p>

     *

     * @param str  the String to check, may be null

     * @return <code>true</code> if the String is empty or null

     */

    public 
展开阅读全文