您的位置:首页 > 编程语言 > Java开发

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

2017-07-31 20:03 549 查看

*需求:统计字符串中每个字母:

 * 说明:编写程序,提示用户输入一个字符串,

 * 然后统计字符串中每个字母出现的个数,忽略字母的大小写。

 *

 * 原理:

 * 1.使用String类中的toLowerCase()方法,将字符串中的大写字母转换成小写形式。

 * 2.构造一个具有26个int值得数组ch ,每个元素记录一个字母出现的次数。

 *     即,ch[0]记录a的个数,ch[1]记录b的个数。

 * 3.对字符中的每一个字符,判断其是否小写字母,如果是,则数组中的相应计数器加1.

第一种风格的源代码:

[java]
view plain
copy
print?

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]+"次");  
            }  
        }  
    }  
  
}  

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]+"次");
}
}
}

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

[java]
view plain
copy
print?

package  第三天_练习题;  
import java.util.Scanner;  
public class 统计字符个数 {  
  
    // 静态方法统计出每个字母出现的次数  
    public static int[] countLetters(String str)   
    {  
        int[] a = new int[26];  
        // 此for循环求各个字母出现的次数  
        for (int i = 0; i < str.length(); i++)  
        {  
            char c = str.charAt(i);// 依次取出每个字母  
            int index = c - 'a';// 这样就可以得到每个字母对应的数组下标  
            a[index] = a[index] + 1;// 对应字母出现则存储字母的数组加1  
        }  
        return a;  
    }  
  
    public static void main(String[] args) {  
        Scanner sc = new Scanner(System.in);  
        String str = sc.nextLine();  
        int[] a = countLetters(str);//调用统计各字母出现次数的函数,返回类型是数组  
        //此for循环打印每个字母出现的次数,没有出现则不打印输出  
        for (int i = 0; i < a.length; i++)  
        {  
            if(a[i]!=0)//等于0相当于这个字母没出现就没必要打印  
            {  
                System.out.println("字母"+(char)(i+'a')+"出现:"+a[i]+"次");  
            }  
        }  
    }  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐