编程1.6

  • ?:怎么统计字符串中英文字母、空格、数字和其它字符的个数啊?
  • ?:嗯,不难吧,字符在计算机是以二进制数字形式存储,对应有一个范围的,通过这个范围就可以确定字符的类型,看代码
import org.junit.Test;

/*
 * 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
 */
public class charCount {

	public void count(String string) {
		int math = 0; // 数字字符个数
		int eng = 0; // 英文字符个数
		int nil = 0; // 空格字符个数
		int other = 0; // 其他字符个数
		for (int i = 0; i < string.length(); i++) {
			if (string.charAt(i) >= '0' && string.charAt(i) <= '9') {
				math++;
				continue;
			} else if (string.charAt(i) >= 'a' && string.charAt(i) <= 'z') {
				eng++;
				continue;
			} else if (string.charAt(i) >= 'A' && string.charAt(i) <= 'Z') {
				eng++;
				continue;
			} else if (string.charAt(i) == ' ') {
				nil++;
				continue;
			} else {
				other++;
			}
		}
		System.out.println("数字字符个数: " + math);
		System.out.println("英文字符个数: " + eng);
		System.out.println("空格字符个数: " + nil);
		System.out.println("其他字符个数: " + other);
	}

	public void count1(String str1) {
		// 如果数值各个字符的ASCII值,可以直接用十进制进行比较
		int math = 0; // 数字字符个数
		int eng = 0; // 英文字符个数
		int nil = 0; // 空格字符个数
		int other = 0; // 其他字符个数
		for (int i = 0; i < str1.length(); i++) {
			if (str1.charAt(i) >= 48 && str1.charAt(i) <= 57) { // 字符0-9
																// 对应十进制的48-57
				math++;
				continue;
			} else if (str1.charAt(i) >= 97 && str1.charAt(i) <= 122) { // 字符a-z
																		// 对应十进制的97到122
				eng++;
				continue;
			} else if (str1.charAt(i) >= 65 && str1.charAt(i) <= 90) { // 字符A-Z
																		// 对应十进制的65到90
				eng++;
				continue;
			} else if (str1.charAt(i) == 32) { // 空格字符对应的十进制的32
				nil++;
				continue;
			} else {
				other++;
			}
		}
		System.out.println("数字字符个数: " + math);
		System.out.println("英文字符个数: " + eng);
		System.out.println("空格字符个数: " + nil);
		System.out.println("其他字符个数: " + other);
	}

	@Test
	public void test() {
		count1("canclnzzzz ciabcak k111e=--p=");
		System.out.println("=================");
		count("canclnzzzz ciabcak k111e=--p=");
	}
}

测试结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值