Java 字符串中的字符频率统计

JavaBeginner
立即练习

介绍

在 Java 中,String 类提供了多种方法,可用于查找字符频率。replace() 方法、chars() 方法以及自定义循环都可以用于查找字符串中字符的出现次数。在本实验中,我们将使用这些方法来计算 Java 字符串中某个字符的出现次数。

创建一个 Java 文件

~/project 目录下创建一个名为 CharOccurrence.java 的新 Java 文件,并在文本编辑器中打开它。

cd ~/project
touch CharOccurrence.java

使用 replace() 方法

在这一步中,我们使用 replace() 方法来查找字符串中某个字符的出现次数。

public class CharOccurrence {
 public static void main(String[] args){
  String str = "abracadabra-banana";
  System.out.println(str);
  // count occurrence
  int count = str.length() - str.replace("a", "").length();
  System.out.println("occurrence of a: "+count);
 }
}

保存并关闭文件。使用以下命令编译 Java 程序:

javac CharOccurrence.java

使用以下命令执行 Java 程序:

java CharOccurrence

在 Java 8 中使用 chars() 和 filter() 方法

在这一步中,我们使用 chars() 方法返回一个字符流,然后使用 filter() 方法获取字符串中所有指定的字符。count() 方法用于获取过滤后的流的计数。

public class CharOccurrence {
 public static void main(String[] args){
  String str = "abracadabra-banana";
  System.out.println(str);
  // count occurrence
  long count = str.chars().filter(ch -> ch == 'a').count();
  System.out.println("occurrence of a: "+count);
 }
}

保存并关闭文件。使用以下命令编译 Java 程序:

javac CharOccurrence.java

使用以下命令执行 Java 程序:

java CharOccurrence

使用自定义循环

这是一种传统的查找字符串中字符计数的方法。在这里,我们使用循环遍历字符串的每个字符,并通过 charAt() 方法比较字符,该方法返回指定索引处的字符,最后统计匹配目标字符的次数。

public class CharOccurrence {
 public static void main(String[] args){
  String str = "abracadabra-banana";
  System.out.println(str);
  // count occurrence
  int count = 0;
     for (int i=0; i < str.length(); i++)
     {
         if (str.charAt(i) == 'a')
         {
              count++;
         }
     }
  System.out.println("occurrence of a: "+count);
 }
}

保存并关闭文件。使用以下命令编译 Java 程序:

javac CharOccurrence.java

使用以下命令执行 Java 程序:

java CharOccurrence

总结

在本实验中,我们学习了三种不同的方法来统计 Java 字符串中某个字符的出现次数。我们使用了 replace()chars()filter() 方法,以及自定义循环。所有这些方法都非常易于使用。你可以根据你的需求和场景选择上述任意一种方法。