java实现统计字符串中字符及子字符串个数的方法示例

Java实现统计字符串中字符及子字符串个数的方法示例

介绍

在Java中,我们经常需要对字符串进行统计,例如统计一个字符串中字符出现的个数或者子字符串出现的次数。本文将介绍一些基础的Java实现方法,可用于解决该问题。

统计字符串中字符出现的个数

对于字符串中字符出现的次数,主要有以下两种实现方法:

方法一:使用Map统计

可以通过Map来统计一个字符串中字符出现的个数,具体实现方法如下:

public static Map<Character, Integer> countCharacters(String str) {
    Map<Character, Integer> counter = new HashMap<>();
    for (char c : str.toCharArray()) {
        if (counter.containsKey(c)) {
            counter.put(c, counter.get(c) + 1);
        } else {
            counter.put(c, 1);
        }
    }
    return counter;
}

示例说明:

String str = "hello world";
Map<Character, Integer> counter = countCharacters(str);
for (Map.Entry<Character, Integer> entry : counter.entrySet()) {
    System.out.println("Character: " + entry.getKey() + ", Count: " + entry.getValue());
}

该示例使用了Map来统计每个字符出现的次数,然后遍历Map输出。

输出结果为:

Character:  , Count: 1
Character: e, Count: 1
Character: d, Count: 1
Character: h, Count: 1
Character: l, Count: 3
Character: o, Count: 2
Character: r, Count: 1
Character: w, Count: 1

方法二:使用数组统计

使用数组来统计字符串中字符出现的个数,具体实现方法如下:

public static int[] countCharacters(String str) {
    int[] counter = new int[256];
    for (char c : str.toCharArray()) {
        counter[c]++;
    }
    return counter;
}

示例说明:

String str = "hello world";
int[] counter = countCharacters(str);
for (int i = 0; i < counter.length; i++) {
    if (counter[i] > 0) {
        System.out.println("Character: " + (char) i + ", Count: " + counter[i]);
    }
}

该示例使用了数组来统计每个字符出现的次数,然后遍历数组输出。

输出结果为:

Character:  , Count: 1
Character: e, Count: 1
Character: d, Count: 1
Character: h, Count: 1
Character: l, Count: 3
Character: o, Count: 2
Character: r, Count: 1
Character: w, Count: 1

统计字符串中子字符串出现的次数

对于字符串中子字符串出现的次数,主要有以下两种实现方法:

方法一:使用String.indexOf()方法

使用String.indexOf()方法来查找并统计子字符串在目标字符串中出现的次数,具体实现方法如下:

public static int countSubstrings(String str, String substring) {
    int count = 0;
    int index = str.indexOf(substring);
    while (index >= 0) {
        count++;
        index = str.indexOf(substring, index + 1);
    }
    return count;
}

示例说明:

String str = "hello world";
String substring = "lo";
int count = countSubstrings(str, substring);
System.out.println("Substring \"" + substring + "\" appears " + count + " times.");

该示例使用了String.indexOf()方法来查找并统计子字符串出现的次数。

输出结果为:

Substring "lo" appears 1 times.

方法二:使用正则表达式

使用正则表达式来查找匹配子字符串,并统计匹配到的次数,具体实现方法如下:

public static int countSubstrings(String str, String substring) {
    int count = 0;
    Pattern pattern = Pattern.compile(substring);
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
        count++;
    }
    return count;
}

示例说明:

String str = "hello world";
String substring = "l";
int count = countSubstrings(str, substring);
System.out.println("Substring \"" + substring + "\" appears " + count + " times.");

该示例使用了正则表达式来查找并统计子字符串出现的次数。

输出结果为:

Substring "l" appears 3 times.

结论

本文提供了一些基础的Java实现方法,可以用于统计字符串中字符及子字符串的个数。可以根据具体需求选择合适的方法来解决问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现统计字符串中字符及子字符串个数的方法示例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

    下面是详细的“jsp从数据库获取数据填充下拉框实现二级联动菜单的方法”攻略。 第一步:创建数据表 首先,我们需要创建一个数据表,用于存储下拉菜单中的选项值和对应的子选项值。例如,我们可以创建一个名为“options”的表,它包含以下字段: optionId:选项的ID optionName:选项的名称 subOptionId:子选项的ID subOption…

    Java 2023年6月15日
    00
  • 详解kotlin中::双冒号的使用

    详解kotlin中::双冒号的使用 在Kotlin中,双冒号::是一个重要的语法符号,它可以表示一些函数和属性的引用。双冒号有以下用法: 1. 表示函数引用 可以使用::符号来表示一个函数的引用,例如: fun plus(a: Int, b: Int): Int = a + b val functionRef = ::plus 在上面的代码中,functio…

    Java 2023年5月26日
    00
  • Java中内存异常StackOverflowError与OutOfMemoryError详解

    Java中内存异常StackOverflowError与OutOfMemoryError详解 StackOverflowError的产生原因及解决方案 StackOverflowError StackOverflowError是由于单个线程或者递归过深,导致函数栈溢出造成的内存溢出异常。当一个方法调用自身方法达到一定次数时会引起StackOverflowEr…

    Java 2023年5月27日
    00
  • Java 字符串转float运算 float转字符串的方法

    一、Java字符串转float运算 在Java中,可以通过以下的方式将字符串转换为float类型: 1.使用Float.parseFloat(String str)方法进行转换: String s1 = "5.5"; float f1 = Float.parseFloat(s1); System.out.println("f1 …

    Java 2023年5月27日
    00
  • 微信小程序实现无缝滚动

    准备工作 微信小程序的开发环境 基本的HTML、CSS、JavaScript知识 微信小程序开发文档 实现步骤步骤一:建立一个scroll组件 在wxml文件中使用scroll组件 <scroll-view scroll-x="{{scrollX}}" scroll-y="{{scrollY}}" style=&…

    Java 2023年5月23日
    00
  • JAVA如何使用Math类操作数据

    Java的Math类提供了许多数学函数,例如对数、三角函数、幂函数和指数函数等。在Java中使用Math类操作数据的过程如下: 导入Math类 在Java中使用Math类操作数据,需要先导入Math类。可以在代码最开始的位置添加导入语句: import java.lang.Math; 使用Math类提供的方法 Math类提供了许多数学函数,可以使用这些函数完…

    Java 2023年5月26日
    00
  • Java Apache Commons报错“ZipUnsupportedEncryptionMethodException”的原因与解决方法

    “ZipUnsupportedEncryptionMethodException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 压缩加密方法不支持:如果压缩加密方法不支持,则可能会出现此异常。例如,可能会尝试使用不支持的压缩加密方法或压缩文件使用不支持的压缩加密方法。 以下是两个实例: 例1 如果压缩加密方法不支持,则可…

    Java 2023年5月5日
    00
  • Spring Security 核心过滤器链讲解

    Spring Security 是基于 Spring 框架的一个安全框架,可用于在 Web 应用程序中添加身份验证和授权的安全性。在 Spring Security 中,过滤器链起着至关重要的作用。本文将从以下几个方面详细讲解 Spring Security 核心过滤器链的完整攻略: Spring Security 核心过滤器链简介 Spring Secur…

    Java 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部