java中如何统计某个字母在一个字符串中出现了多少次

Python016

java中如何统计某个字母在一个字符串中出现了多少次,第1张

1、根据length获取字符串长度

1

2

String s = "abcdedfae"//定义一个字符串

int len = s.length()//获取原来的字符串长度

2、通过replaceAll方式,把字符串中该字母替换成空

1

String s1 = s.replaceAll(要统计的字母,"")

3、获取替换后的字符串长度

1

int len2 = s1.length()

4、原来的字符串长度减去替换后的字符串长度就是该字母出现的次数

1

int lenTimes = len1-len2//出现的次数

这是我刚根据你的需求写的,你可以参考一下!

我办法很简单,拆分存放数组里面,然后查找数组就可以了!

其实还有更简单的办法,直接用容器比较方便,目前这个办法我自己用数组写的,我个人挺满意的! import java.util.Scanner

public class 统计次数 

{

private static Scanner sc=new Scanner(System.in)

public static void main(String[] args) 

{

System.out.println("\n\t\t==========统计字符串中字符次数==========\n")

init()

}//初始化!

private static void init()

{

for (  )

{

System.out.println("输入文字:")

char[] arr1=fenJie(input())

System.out.println("查找的字:")

char x=muBiao(fenJie(input()))

int y=chaZhao(arr1,x)

System.out.println("你要找的是\""+x+"\",出现"+y+"次\n===============\n")

}

}

//录入!

private static String input()

{

String s=sc.next()

return s

}

//分解!

private static char[] fenJie(String s)

{

char[] arr=new char[s.length()]

for (int i=0i<s.length() i++ )

{

arr[i]=(char)(s.charAt(i))

}

return arr

}

//查找!

private static int chaZhao(char[] arr,char x)

{

int num=0,tem=-1

for (int a=0,b=arr.length-1a<=b a++,b-- )

{

if(a!=b&&arr[a]==x)num++

if(a!=b&&arr[b]==x)num++

if((a==b)&&(arr[a]==x||arr[b]==x))num++

tem=num

}

return tem

}

//目标

private static char muBiao(char[] arr)

{

return arr[0]

}

}

其实这个问题,涉及到两个过程

首先是统计数组中数字出现的次数,应该要有类似“数字 - 出现次数”这种结果出现,其实就是Map结构的key和value

然后就是找出出现次数最大的一个,并返回对应的数字即可

针对以上两个过程,推荐采用Java8的流(Stream)来处理,代码比较简单易懂,因此下面的示例代码,请在JDK8的环境下运行

int[] arr = {1, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5}

// 过程1 Collectors.groupingBy代表是分类,按照本身Function.identity()进行分类,那相同数字就会放在一起,Collectors.counting是统计相同数字的个数

Map<Integer, Long> map = IntStream.of(arr).boxed().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))

System.out.println("数字出现次数统计(数字=次数):" + map)

// 过程2 max方法是根据比较器(按照map的value进行排序)找出最大值

Optional<Integer> maxOptional = map.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).map(Map.Entry::getKey)

System.out.println("出现次数最多的数字:" + maxOptional.get())

最后结果如下