Cet article décrit la méthode de Java indiquant le nombre d'occurrences d'une chaîne sur une autre chaîne. Partagez-le pour votre référence, comme suit:
Java compte le nombre de fois qu'une chaîne apparaît dans une autre chaîne
Le code est le suivant:
package me.chunsheng.javatest; import java.util.regex.matcher; import java.util.regex.pattern; / ** * créé par wei_spring le 16/10/11. * <p> * Statistiques Le nombre de fois qu'une chaîne apparaît dans une autre chaîne * Une méthode de correspondance régulière, en supposant que la chaîne n'est pas une chaîne spéciale * par exemple: Finder ("AdadadaUada", "Ada") sera inexacte. * Une autre traversée résout la situation ci-dessus. * Le temps entre les deux est le suivant (en nanosecondes): régulièrement est évidemment long et régulier n'est pas utilisé pour les statistiques !!! * Finder: 3 * FinderTime: 1579549 * GetCount: 4 * GetCountTime: 34506 * / public class subStringCount {public static void main (String [] args) {System.out.println ("wulin.com Result Test:"); Current long1 = System.NanoTime (); System.out.println ("Finder:" + Finder ("Adadadadauada", "Ada")); System.out.println ("FinderTime:" + (System.NanoTime () - Current1)); Current long2 = System.NanoTime (); System.out.println ("GetCount:" + GetCount ("AdadadaUauda", "Ada")); System.out.println ("GetCountTime:" + (System.NanoTime () - Current2)); } public static int getCount (chaîne source, string sub) {int count = 0; int longueur = source.length () - sub.length (); for (int i = 0; i <length; i ++) {String SourceBak = source.substring (i, i + sub.length ()); int index = sourceBak.Indexof (sub); if (index! = -1) {count ++; }} Return Count; } public static int finder (string source, string regexstr) {string regex = "[a-za-z] +"; if (regexstr! = null &&! regexstr.equals ("")) {regex = regexstr; } Pattern Expression = Pattern.Compile (regex); Matcher Matcher = expression.matcher (source); int n = 0; while (Matcher.Find ()) {n ++; } return n; }}Résultats en cours:
Ayez toujours un cœur pieux et sont prêts à partager. La connaissance est plus significative.
PS: Voici deux outils statistiques très pratiques pour votre référence:
Outil de nombre de mots en ligne:
http://tools.vevb.com/code/zishutongji
Statistiques de caractère en ligne et outils d'édition:
http://tools.vevb.com/code/char_tongji
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.