题解 | #统计字符#

统计字符

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;
    }
}

全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务