字符串练习二:从键盘输入一个字符串,统计其中各种字符的个数(大写字母、小写字母、数字、其他)

import java.util.Scanner;

/**
 * 从键盘输入一个字符串,统计其中各种字符的个数(大写字母、小写字母、数字、其他)
 */
public class StringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String input = sc.next();
        sc.close();
        int countUpper = 0;
        int countLower = 0;
        int countNumber = 0;
        int countOther = 0;
        char[] arr = input.toCharArray();
        for (char x : arr) {
            if (x >= 'A' && x <= 'Z') {
                countUpper++;
            } else if (x >= 'a' && x <= 'z') {
                countLower++;
            } else if (x >= '0' && x <= '9') {
                countNumber++;
            } else {
                countOther++;
            }
        }
        System.out.println("大写字母个数" + countUpper);
        System.out.println("小写字母个数" + countLower);
        System.out.println("数字个数" + countNumber);
        System.out.println("其他字符个数" + countOther);
    }
}

输入输出示例:

请输入一个字符串:Hello2020August!
大写字母个数2
小写字母个数9
数字个数4
其他字符个数1

 

汇编语言是一种低级编程语言,它直接操作硬件,用于编写特定平台的操作系统内核、驱动程序等。如果你想在汇编语言中完成这个任务,你需要使用指令集如x86、ARM或其他对应架构的语言。下面是一个简单的示例,展示如何在x86汇编语言中统计字符类型的数量: ```assembly section .data buffer db 0, 0, 0, 0 ; 数组存储数字小写大写和空格的数量 input db 'your input string', 0 ; 用户输入的字符串 len equ $ - input ; 输入字符串长度 section .text global _start _start: xor eax, eax ; 初始化计数器 mov ecx, len ; 设置循环计数 digit_loop: lodsb ; 取下一个字节并将其压入AL寄存器 cmp al, '0' ; 检查是否为数字 jl non_digit cmp al, '9' jg non_digit inc byte [buffer + 0] ; 字符数字,增加数组第一个元素(数字计数) non_digit: cmp al, 'a' ; 检查是否为小写字母 jl not_lower cmp al, 'z' jg not_lower inc byte [buffer + 1] ; 字符小写字母,增加数组第个元素(字母计数) not_lower: cmp al, 'A' ; 检查是否为大写字母 jl not_upper cmp al, 'Z' jg not_upper inc byte [buffer + 2] ; 字符大写字母,增加数组第三个元素(大写字母计数) not_upper: cmp al, ' ' ; 检查是否为空格 je is_space jmp digit_loop ; 如果不是以上字符,跳回检查数字 is_space: inc byte [buffer + 3] ; 字符为空格,增加数组第四个元素(空格计数) next_char: loop digit_loop ; 继续循环直到遍历完所有字符 ; 现在缓冲区里存储了每个类型的字符计数,你可以选择在这里添加代码将结果打印出来或者保存到内存中供后续处理 exit: mov eax, 1 ; sys_exit syscall number xor ebx, ebx ; return code 0 int 0x80 ; call kernel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值