java给定一串字符串,统计其中的各个字符的出现的次数


*需求:统计字符串中每个字母:
 * 说明:编写程序,提示用户输入一个字符串,
 * 然后统计字符串中每个字母出现的个数,忽略字母的大小写。
 *
 * 原理:
 * 1.使用String类中的toLowerCase()方法,将字符串中的大写字母转换成小写形式。
 * 2.构造一个具有26个int值得数组ch ,每个元素记录一个字母出现的次数。
 *     即,ch[0]记录a的个数,ch[1]记录b的个数。
 * 3.对字符中的每一个字符,判断其是否小写字母,如果是,则数组中的相应计数器加1.

第一种风格的源代码:

  1. package 第四天;  
  2.   
  3. import java.util.Scanner;  
  4.   
  5. public class 统计字符 {  
  6.     public static void main(String[] args) {  
  7.           
  8.         Scanner sc = new Scanner(System.in);  
  9.         int[] a = new int[26];//数组存放对应26个字母的出现次数比如a[0]的值对应字母a出现的次数,a[2]的值对应c出现的次数。。。  
  10.         System.out.println("请输入一串小写字符串");  
  11.         String str=sc.nextLine();  
  12.         str=str.trim().toLowerCase();//去掉前后空格并且全转为小写字母  
  13.           
  14.         //此for循环求各个字母出现的次数  
  15.         for (int i = 0; i < str.length(); i++)  
  16.         {  
  17.             char c = str.charAt(i);//依次取出每个字母  
  18.             int index=c-'a';//这样就可以得到每个字母对应的数组下标  
  19.             a[index]=a[index]+1;//对应字母出现则存储字母的数组加1  
  20.         }  
  21.           
  22.         //此for循环打印每个字母出现的次数,没有出现则不打印输出  
  23.         for (int i = 0; i < a.length; i++)  
  24.         {  
  25.             if(a[i]!=0)//等于0相当于这个字母没出现就没必要打印  
  26.             {  
  27.                 System.out.println("字母"+(char)(i+'a')+"出现:"+a[i]+"次");  
  28.             }  
  29.         }  
  30.     }  
  31.   
  32. }  
package 第四天;

import java.util.Scanner;

public class 统计字符 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int[] a = new int[26];//数组存放对应26个字母的出现次数比如a[0]的值对应字母a出现的次数,a[2]的值对应c出现的次数。。。
		System.out.println("请输入一串小写字符串");
		String str=sc.nextLine();
		str=str.trim().toLowerCase();//去掉前后空格并且全转为小写字母
		
		//此for循环求各个字母出现的次数
		for (int i = 0; i < str.length(); i++)
		{
			char c = str.charAt(i);//依次取出每个字母
			int index=c-'a';//这样就可以得到每个字母对应的数组下标
			a[index]=a[index]+1;//对应字母出现则存储字母的数组加1
		}
		
		//此for循环打印每个字母出现的次数,没有出现则不打印输出
		for (int i = 0; i < a.length; i++)
		{
			if(a[i]!=0)//等于0相当于这个字母没出现就没必要打印
			{
				System.out.println("字母"+(char)(i+'a')+"出现:"+a[i]+"次");
			}
		}
	}

}
第一种风格的源代码:把统计字母个数包装成了一个静态方法

  1. package  第三天_练习题;  
  2. import java.util.Scanner;  
  3. public class 统计字符个数 {  
  4.   
  5.     // 静态方法统计出每个字母出现的次数  
  6.     public static int[] countLetters(String str)   
  7.     {  
  8.         int[] a = new int[26];  
  9.         // 此for循环求各个字母出现的次数  
  10.         for (int i = 0; i < str.length(); i++)  
  11.         {  
  12.             char c = str.charAt(i);// 依次取出每个字母  
  13.             int index = c - 'a';// 这样就可以得到每个字母对应的数组下标  
  14.             a[index] = a[index] + 1;// 对应字母出现则存储字母的数组加1  
  15.         }  
  16.         return a;  
  17.     }  
  18.   
  19.     public static void main(String[] args) {  
  20.         Scanner sc = new Scanner(System.in);  
  21.         String str = sc.nextLine();  
  22.         int[] a = countLetters(str);//调用统计各字母出现次数的函数,返回类型是数组  
  23.         //此for循环打印每个字母出现的次数,没有出现则不打印输出  
  24.         for (int i = 0; i < a.length; i++)  
  25.         {  
  26.             if(a[i]!=0)//等于0相当于这个字母没出现就没必要打印  
  27.             {  
  28.                 System.out.println("字母"+(char)(i+'a')+"出现:"+a[i]+"次");  
  29.             }  
  30.         }  
  31.     }  
  32. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值