java编程:输入一串小写字符串,统计每个字母出现的次数

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

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

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

*

* 原理:

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

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

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

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

第一种风格的源代码:

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 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]+"次");
			}
		}
	}
}
时间: 2024-10-22 11:16:05

java编程:输入一串小写字符串,统计每个字母出现的次数的相关文章

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。

这是华为2013的一个机试题,会好半天才想出来,用了三个for循环,可能有点繁琐,但只要慢慢看还是好理解的, 题目: 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串"abacacde"过滤结果为"abcde". #include<stdio.h> #include<string.h> void main() { char a[]="aba

Java编程实现中英混合字符串数组按首字母排序的方法

在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: ? 1 2 3 4 5 6 7 String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反对高铁"

python找出字符串中每个字母出现的次数

#!/usr/bin/env python # coding=utf-8 str1 = "abcdefabcdefgghj" listStr = [] for eachStr in str1:     countStr = str1.count(eachStr)     numStr = eachStr + ":" + str(countStr)     if numStr not in listStr :         listStr.append(numStr

黑马程序员---java基础--集合、数组、字符串的综合面试题

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 这道题综合了集合,数组,字符串,字符串缓冲区,自动装箱等知识点,你把这道题做会了,java基础你也就学的差不多了. 问题: 自定义一个段由小写字母组成的字符串统计每个字母出现的次数. 例如:abc,输出结果为:a(1)b(1)c(1) 代

统计字符串中字母出现的次数,字典形式输出(python)

a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典. 例 {'a':3,'b':1} 请去除a字符串多次出现的字母,仅留最先出现的一个,大小写不敏感.例 'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e' a = "aAsmr3idd4bgs7Dlsf9eAF" def

百度练习题 统计元音字母

题目如下: 遇到一道题,苦苦没有思路,求各路python大神解答,在线等.输入一串文字,统计这串文字里的[元音字母(aeiou)大小写不分,A和a都统一算是a]的数量.有3个要求:1.打印出出现次数最少的元音字母和它的出现次数,如果出现次数为0的话就忽略不急.例如,“Are you about ”,里面没出现i, i就不算了.所以它打出来的东西就是“e with 1 occurence.”2.类似于“Andy was here”,a 和 e 都是出现次数最少的元音字母(2次),那么打出来就得是

(hdu 简单题 128道)AC Me(统计一行文本中各个字母出现的次数)

题目: AC Me Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13465    Accepted Submission(s): 5927 Problem Description Ignatius is doing his homework now. The teacher gives him some articles and as

笔试:找出一个字符串中字符出现最多的次数和该字符

我用的是js, 每次取出字符串的第一个字母,然后把和它相同的字符利用“”替换掉,然后来比较替换前和替换后的字符串长度相差多少, 那么差值就是就是里面该字符的个数,找出这个差值最大的就是和所对应的替换字符. var str ="djlxsdjlxs"; //命名一个变量放置给出的字符串 var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0 var result = ''; //命名一个变量放置结果输入 while( str != '' ){ //循环迭

编程题:输入一串字符,程序会自动将大写字母转换为小写

编程题:输入一串字符,程序会自动将大写字母转换为小写 #include <stdio.h> #include <conio.h> main() { int i=0; char a[50],ch; printf("输入一串字符,程序会自动将大写字母转换为小写\n"); printf("按任意键继续,按Esc键退出\n"); while(ch=getch()!=27) { fflush(stdin); printf("请输入字符串:\n