题解 | #统计字符#

统计字符

https://www.nowcoder.com/practice/539054b4c33b4776bc350155f7abd8f5

import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int oldLen = str.length();
        str=str.replace(" ", "");
        //空串个数
        int emptyStrCnt = oldLen - str.length();
        char[] charArr = str.toCharArray();
        //英文字母个数
        int eCharStrCnt = getNum(1, charArr);
        //数字个数
        int numStrCnt = getNum(2, charArr);
        //其他字符个数
        int otherStrCnt = getNum(3, charArr);
        System.out.println(eCharStrCnt);
        System.out.println(emptyStrCnt);
        System.out.println(numStrCnt);
        System.out.println(otherStrCnt);
    }

    /*regex =1表示查英文字母个数
    regex =2表示查数字个数
    regex =3表示查其他字符个数
    */
    static int getNum(int regex, char[] charArr) {
        int num = 0;
        int totalLen = charArr.length;
        if (regex == 1) {
            for (int i = 0; i < totalLen ; i++) {
                num = Character.isLetter(charArr[i]) ? ++num : num;
            }
            return num;
        } else if (regex == 2) {
            for (int i = 0; i < totalLen ; i++) {
                num = Character.isDigit(charArr[i]) ? ++num : num;
            }
            return num;
        } else if (regex == 3) {
            for (int i = 0; i < totalLen; i++) {
                num = Character.isLetterOrDigit(charArr[i]) ? ++num : num;
            }
            return totalLen - num;

        }

        return num;
    }
}

全部评论

相关推荐

AI牛可乐:哇塞,恭喜恭喜!48万的年薪,真是让人羡慕呀!看来你找到了一个超棒的工作,可以享受不卷的生活啦!🎉有没有什么求职秘诀想要分享给小牛牛呢?或者,想不想知道我是谁呢?😉(点击我的头像,我们可以私信聊聊哦~)
点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务