在一个字符串中,统计大写字母个数,小写字母个数,其他字符个数的四种算法

原创 2014年11月22日 16:32:55

  题目描述:编写程序,输出字符串中的大写字母、小写小母和其他的个数。如有一个字符串"Helle, This is A test textfile.123456, tannk you!!",则其大写字母个数:3,小写字母个数:29,其他字符个数:18.

  这里提供了四种算法,第一种是我们比较好理解的,也属于硬编码问题,其他三种方法要借助JAVA语言的jdk提供的api。

方法一:

//方法一:在利用每个字符的Unicode码在a~z之间,调用jdk提
//供的String类的charAt取出字符串每一个字符,逐个进行比较来判定

class FindLetter {
	public static void main(String[] args) {
		String str = "Helle, This is A test textfile.123456, tannk you!!";
		int upCount = 0;
		int lowCount = 0;
		int otherCount = 0;
		
		for(int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if(c >= 'a' && c <= 'z') {
				lowCount++;
			} else if(c >= 'A' && c <= 'Z') {
				upCount++;
			} else {
				otherCount++;	
			}
		}
		System.out.println("大写之母个数:" + upCount);
		System.out.println("小写字母个数:" + lowCount);
		System.out.println("其他字符个数:" + otherCount);
	}	
}
方法二:

//方法二:用jdk的Character类的isUpperCase方法和isLowerCase方法

class FindLetter1 {
	public static void main(String[] args) {
		String str = "Helle, This is A test textfile.123456, tannk you!!";
		int upCount = 0;
		int lowCount = 0;
		int otherCount = 0;
		
		for(int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if(Character.isUpperCase(c)) {
				upCount++;
			} else if(Character.isLowerCase(c)) {
				lowCount++;
			} else {
				otherCount++;	
			}
		}
		System.out.println("大写字母个数:" + upCount);
		System.out.println("小写字母个数:" + lowCount);
		System.out.println("其他字母个数:" + otherCount);
	}	
}

方法三:

//方法三:先定义两个字符串a到z和A到Z,再逐个取出str字符串中的每个字母,
//用indexOf()方法来判断字符是否在这这个定义的字符串中,在大写字母这一行,
//大写字母的计数器就加1,在小写字母这行,小写字母就加一,否则其他字母计算器
//加1

class FindLetter2 {
	public static void main(String[] args) {
		String low = "abcdefghijklmnopqrstuvwxyz";
		String up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		int lowCount = 0;
		int upCount = 0;
		int otherCount = 0;
		String str = "Helle, This is A test textfile.123456, tannk you!!";
		
		for(int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if(low.indexOf(c) != -1) {
				lowCount++;
			} else if(up.indexOf(c) != -1) {
				upCount++;
			} else {
				otherCount++;	
			}
		}
		System.out.println("大写字母个数:" + upCount);
		System.out.println("小写字母个数:" + lowCount);
		System.out.println("其他字母个数:" + otherCount);
	}	
}

方法四:

//把str分别转化为大写和小写 大写用sU 小写 sL
//然后通过与原串比较来统计个数

class FindLetter3 {
	public static void main(String[] args) {
		String str = "Helle, This is A test textfile.123456, tannk you!!";	
		String sU = str.toUpperCase();
		String sL = str.toLowerCase();
		int lowCount = 0;
		int upCount = 0;
		int otherCount = 0;
		for(int i = 0; i < str.length(); i++) {
			char charSTR = str.charAt(i);
			char charSU = sU.charAt(i);
			char charSL = sL.charAt(i);
			
			//如果不是字母,是其他字符,则直接用otherCount来计数
			if(Character.isLetter(charSTR)) {
			//如果原串与转换过后的大写字母串相等,则原来字符为大写字母,
			//若与小写字母相等,则为小写字母
				if( charSTR == charSU) {	
					upCount++;
				} else if(charSTR == charSL) {
					lowCount++;
				}
			} else {
				otherCount++;	
			}
		}
		
		System.out.println("大写字母个数:" + upCount);
		System.out.println("小写字母个数:" + lowCount);
		System.out.println("其他字母个数:" + otherCount);
	}	
}

 这四种算法都有正确的输出:

大写字母个数:3
小写字母个数:29
其他字母个数:18



版权声明:本文为张仕宗原创文章,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。

输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数

  • 2008年09月08日 22:51
  • 558B
  • 下载

写一个程序,统计字符串的大写字母个数、小写字母个数、数字个数和其它字符个数。用函数func实现功能,在main中,至少使用10个字符串对函数进行测试。

#include #include int func3(char*m,int leng) { int i; int M[5]={0}; for(i=0;i=48&&m[i]=6...
  • tang051308
  • tang051308
  • 2018年01月08日 21:35
  • 81

写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

弄了好长时间,最后是java在OJ上面的输入输出的问题,题目容易,直接上代码 import java.util.Scanner; public class Main { public sta...
  • ihdsj2016
  • ihdsj2016
  • 2017年01月29日 19:32
  • 634

编码 统计连续字符串中连续字母的个数。

题目描述 给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码: 1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。 2、 如果K为1,不输出K 输入  输入有多...
  • u011887883
  • u011887883
  • 2014年01月21日 10:05
  • 899

编码

题目描述 给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。2、 如果K为1,不输出K输入输入有多组,直到文件结...
  • OJZFY
  • OJZFY
  • 2015年11月21日 17:12
  • 770

python小练习1:给一个字符串,统计其中的数字、字母和其他类型字符的个数

最近一直在学习python,在此之间,我无时无刻不在感受着python这个语言的强大魅力。比起C语言,他简单易懂、易学。其语法的简单便捷让我对他产生了不浓厚的兴趣,所以,现在在工作之余,我都会练习py...
  • MTbaby
  • MTbaby
  • 2016年10月12日 18:03
  • 11660

统计一个字符串中大写字母,小写字母,以及数字的个数。

public class StringTest {  public static void main(String[] args) {   // 封装键盘录入数据   Scanner sc = ...
  • wei323001
  • wei323001
  • 2013年03月31日 20:55
  • 3272

7.10 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

7.10 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。 #include//7.10 有一篇文章,共有3行文字,每行有80...
  • qslife
  • qslife
  • 2016年07月21日 00:03
  • 4153

统计字符串中字母、数字、空格个数

题目要求: 编写一函数,由实参传来一个字符串, 统计此字符串中字母、数字、空格和其它字符的个数, 在主函数中输入字符串以及输出上述统计结果。 思路: 定义变量如下: i循环变量,j字母个数,k数...
  • hadues
  • hadues
  • 2015年01月10日 13:16
  • 7282

java 统计字符串中每个字母有多少个

先把字符串转换成字符数组,然后对每个字母,或者数字 每次遍历数组一个个统计就行了。 package yaxin; public class CountString { public stat...
  • qq_21808961
  • qq_21808961
  • 2017年10月21日 22:07
  • 797
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在一个字符串中,统计大写字母个数,小写字母个数,其他字符个数的四种算法
举报原因:
原因补充:

(最多只允许输入30个字)