Java经典案例之-“统计英文字母、空格、数字和其它字符的个数”

/**

* 描述:输入一行字符串,并且统计出其中英文字母、空格、数字和其它字符的个数。

* 分析:利用for语句,条件为输入的字符不为 '\n '

* 作者:徐守威

*/

package com.xushouwei;

import java.util.*;

publicclass T7 {

publicstaticvoid main(String[] args) {

//输入字符串

System.out.println("请输入您要输入的字符串:");

Scanner sc=new Scanner(System.in);

String str = sc.next();

System.out.println("[总字符数1]:"+countSum1(str));

System.out.println("[总字符数2]:"+countSum2(str));

System.out.println("[总字符数3]:"+str.length());

}

//统计所输入的字符字符总数

publicstaticint countSum1(String str)

{

//定义unicode码个数

int unicodeCount = 0;

//定义数字的个数

int szCount = 0;

//定义字母个数

int zmCount = 0;

for (int i = 0; i < str.length(); i++)

{

//返回指定索引处的 char 值,统计数字个数,字母个数,unicode码个数

char c = str.charAt(i);

if (c >= '0' && c <= '9')

{

//统计数字个数

szCount++;

}elseif((c >= 'a' && c<='z') || (c >= 'A' && c<='Z'))

{

//统计字母个数

zmCount++;

}else

{

//统计unicode码个数

unicodeCount++;

}

}

System.out.println("Unicode:"+unicodeCount);

System.out.println("数字:"+szCount);

System.out.println("字母:"+zmCount);

int sum=szCount+zmCount+unicodeCount;

return sum;

}

publicstaticint countSum2(String str) {

//字母个数

int abccount = 0;

//数字个数

int numcount = 0;

//空格个数

int spacecount = 0;

//其他符号个数

int othercount = 0;

//将字符串转换成一个新的字符数组

char[] b = str.toCharArray();

for(int i = 0; i < b.length; i++)

{

if(b[i]>='a'&&b[i]<='z'||b[i]>='A'&&b[i]<='Z')

{

//字母个数统计

abccount++;

}elseif(b[i]>='0'&&b[i]<='9')

{

//数字个数统计

numcount++;

}elseif(b[i]==' ')

{

//空格个数统计

spacecount++;

}else

{

//其他符号个数统计

othercount++;

}

}

int sum=abccount+numcount+spacecount+othercount;

System.out.println("字符串中含有的英文字母数为:" + abccount);

System.out.println("字符串中含有的数字数为:" + numcount);

System.out.println("字符串中含有的空格数为:" + spacecount);

System.out.println("字符串中含有的其他字符为:" + othercount);

return sum;

}

}