7、统计字母、空格、数字 与 其它字符的个数

题目如下:

输入一行字符,统计字母、空格、数字 与 其它字符的个数

先来了解一些概念:

UNICODE与ASCII的区别,UTF8的引入

ASC IIAmerican Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统;

计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。
上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。ASCII 码一共规定了128个字符的编码,比如空格SPACE是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一规定为0;

031127(33)

控制字符或通信专用字符(其余为可显示字符)如控制符:LF(换行)、CR回车)、FF(换页)、DEL删除)、BS(退格)BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8910 13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。

32126(95)

字符Char,其中:

32空格

48~57为0~9十个阿拉伯数字

65~90为26个大写英文字母

97~122为26个写英文字母

更多十进制对应结果可以查看Unicode表>>https://www.ssec.wisc.edu/~tomw/java/unicode.html#x0100

好了通过ASC II编码表可以很容易区分 字母、空格、数字、其它字符

代码如下:

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		String x = s.nextLine();
		List<String> l = getNum(x);
		for(String i : l){
			System.out.println(i);
		}
	}
	
	static List<String> getNum(String x){
		int num=0,letter=0,space=0,other=0;
		List<String> l = new ArrayList<String>();
		char arr[] = x.toCharArray();
		for(char c : arr){
			//数字
			if(c >= 48 && c <= 57){
				num++;
			}
			//大写字母 ||小写字母
			else if(c >= 65 && c <= 90 || c >= 97 && c <= 122){
				letter++;
			}
			//空格
			else if(c == 32){
				space++;
			}
			//其它
			else other++;
		}
		l.add("数字个数:"+num);
		l.add("字母个数:"+letter);
		l.add("空格个数:"+space);
		l.add("其它字符:"+other);
		return l;
	}

示例:

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值