首页 > 试题广场 >

统计字符

[编程题]统计字符
  • 热度指数:163632 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的由可见字符和空格组成的字符串,统计其中英文字母、空格、数字和其它字符的个数。

\hspace{15pt}字符串由 ASCII 码在 32126 范围内的字符组成。您可以参阅下表获得其详细信息。

../图片/可见字符集Ascii.png

输入描述:
\hspace{15pt}在一行上输入一个长度为 1 \leqq {\rm length}(s) \leqq 1000 的字符串。


输出描述:
\hspace{15pt}第一行输出一个整数,代表字符串中英文字母的个数。
\hspace{15pt}第二行输出一个整数,代表字符串中空格的个数。
\hspace{15pt}第三行输出一个整数,代表字符串中数字的个数。
\hspace{15pt}第四行输出一个整数,代表字符串中其它字符的个数。
示例1

输入

1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][

输出

26
3
10
12
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        char[] chars = str.toCharArray();

        int numa = 0;
        int numb = 0;
        int numc = 0;
        for (Character c : chars) {
            if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
                numa++;
            }
            if (c == ' ') {
                numb++;
            }
            if (c >= '0' && c <= '9') {
                numc++;
            }
        }
        System.out.println(numa);
        System.out.println(numb);
        System.out.println(numc);
        System.out.println(chars.length - numa - numb - numc);
    }
}
发表于 2024-10-08 11:32:32 回复(0)
采用Charater类自带的方法来判断各个字符。
package com.shisui.easy;

import java.util.Scanner;

public class count_characters {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String string = sc.nextLine();
        int letterCount = 0;
        int spaceCount = 0;
        int numberCount = 0;
        int otherCount = 0;
        for (int i = 0; i < string.length(); i++) {
            char ch = string.charAt(i);
            if(Character.isLetter(ch)){
                letterCount++;
            }else if(Character.isSpaceChar(ch)){
                spaceCount++;
            }else if(Character.isDigit(ch)){
                numberCount++;
            }else {
                otherCount++;
            }
        }
        System.out.println(letterCount);
        System.out.println(spaceCount);
        System.out.println(numberCount);
        System.out.println(otherCount);


    }
}


发表于 2024-09-23 17:10:36 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            char[] arr = in.nextLine().toCharArray();
            int shuzi = 0;
            int kongge = 0;
            int zimu = 0;
            int qita = 0;
            for (char a : arr) {
                if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) {
                    zimu += 1;
                } else if (a == ' ') {
                    kongge += 1;
                } else if (a >= '0' && a <= '9') {
                    shuzi += 1;
                } else {
                    qita += 1;
                }
            }
            System.out.println(zimu);
            System.out.println(kongge);
            System.out.println(shuzi);
            System.out.println(qita);
        }
        in.close();
    }
}
发表于 2024-09-11 21:07:32 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        char[] ch = in.nextLine().toCharArray();
        int letter = 0;
        int space = 0;
        int number = 0;
        int other = 0;
        for (int i = 0; i < ch.length; i++) {
            if ((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')) {
                letter++;
            }
            else if(ch[i]>='0'&&ch[i]<='9'){
                number++;
            }
            else if(ch[i]==' '){
                space++;
            }
            else{
                other++;
            }
        }
        System.out.println(letter);
        System.out.println(space);
        System.out.println(number);
        System.out.println(other);
    }
}
发表于 2024-08-19 14:35:12 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        int[] count = new int[4];
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
                count[0] += 1;
            } else if (c == ' ') {
                count[1] += 1;
            } else if (c >= '0' && c <= '9') {
                count[2] += 1;
            } else {
                count[3] += 1;
            }
        }
        for (int num : count) {
            System.out.println(num);
        }
    }
}
发表于 2024-08-03 01:47:16 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String str = in.nextLine();

            int englishNum = 0, spaceNum = 0, digitNum = 0, otherNum = 0;
            for (int i = 0; i < str.length(); i++) {
                char c = str.charAt(i);
                if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
                    englishNum++;
                } else if (c >= '0' && c <= '9') {
                    digitNum++;
                } else if (c == ' ') {
                    spaceNum++;
                } else {
                    otherNum++;
                }
            }
            System.out.println(englishNum);
            System.out.println(spaceNum);
            System.out.println(digitNum);
            System.out.println(otherNum);
        }
    }
}

发表于 2024-07-06 09:43:29 回复(0)
记着ascII码就比较简单了。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String str = in.nextLine();

int letter = 0;
int space = 0;
int num = 0;
int other = 0;
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c>=65 && c<=90){
letter++;
}
else if(c>=97 && c<=122){
letter++;
}

else if(c == ' ') {
space++;
}

else if(c >=48 && c<=57){
num++;
}
else{
other++;
}
}

System.out.println(letter);
System.out.println(space);

System.out.println(num);

System.out.println(other);

}
}

编辑于 2024-04-24 16:45:08 回复(0)
无脑上:
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        int letter = 0;
        int blank = 0;
        int digit = 0;
        int other = 0;
        char[] chars = line.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (Character.isLetter(chars[i])) {
                letter++;
            } else if (Character.isDigit(chars[i])) {
                digit++;
            } else if (chars[i] == ' ') {
                blank++;
            } else {
                other++;
            }
        }
        System.out.println(letter);
        System.out.println(blank);
        System.out.println(digit);
        System.out.println(other);
    }


编辑于 2024-04-08 21:47:17 回复(0)
毫无技巧的暴力输出
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String val = in.nextLine();
        char[] cs = val.toCharArray();
        //字符
        int a = 0;
        //空格
        int b = 0;
        //数字
        int c = 0;
        //其他
        int d = 0;
        for (char v : cs) {
            if (v >= '0' && v <= '9') {
                c = c + 1;
            } else if (v == ' ') {
                b = b + 1;
            } else if ((v >= 'a' && v <= 'z') || (v >= 'A' && v <= 'Z') ) {
                a = a + 1;
            } else {
                d = d + 1;
            }
        }
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}


编辑于 2024-04-08 12:48:43 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String s = in.nextLine();
            int letter = 0;
            int blankSpace = 0;
            int num = 0;
            int other = 0;
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (Character.isWhitespace(c)) {
                    blankSpace++;
                } else if (Character.isLetter(c) ) {
                    letter++;
                } else if (Character.isDigit(c)) {
                    num++;
                } else {
                    other++;
                }
            }
            System.out.println(letter);
            System.out.println(blankSpace);
            System.out.println(num);
            System.out.println(other);
        }
    }
}

编辑于 2024-01-09 10:04:28 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
       char [] arr = in.nextLine().toCharArray();
       int [] a = new int[4];
       for(int i = 0; i < arr.length; i++){
            if(Character.isLetter(arr[i])){
                a[0]++;
            }else if(arr[i] == ' '){
                a[1]++;
            }else if(Character.isDigit(arr[i])){
                a[2]++;
            }else{
               a[3]++;
            }
       }
       System.out.println(a[0]+"\n"+a[1]+"\n"+a[2]+"\n"+a[3]);
    }
}

发表于 2023-11-24 13:13:59 回复(0)
public class HJ40 {

    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            // 注意 hasNext 和 hasNextLine 的区别
            while (in.hasNextLine()){
                String str = in.nextLine();
                count(str);
//                methodReplace(str);
                bytecodeCount(str);
            }

    }

    private static void methodReplace(String str) {
        int length = str.length();
        String replaced = str.replaceAll("[\\u4E00-\\u9FA5A-Za-z]", "");
        System.out.println(length - replaced.length());
        length = replaced.length();
        replaced = replaced.replaceAll(" ", "");
        System.out.println(length - replaced.length());
        length = replaced.length();
        replaced = replaced.replaceAll("[0-9]", "");
        System.out.println(length - replaced.length());
        length = replaced.length();
        System.out.println(length);
    }

    private static void count(String str) {
        int a = 0, e = 0, n = 0, o = 0;
        for (int i = 0; i < str.length(); i++) {
            char charred = str.charAt(i);
            String item = Character.toString(charred);
            if (item.matches("[\\u4E00-\\u9FA5A-Za-z]")) {
                a++;
            }else if (item.matches("[0-9]")){
                n++;
            }else if (item.equals(" ")){
                e ++;
            }else {
                o ++;
            }
        }
        System.out.println(a + "\n" + e + "\n" + n + "\n" + o);
    }
    
    private static void bytecodeCount(String str) {
        int a = 0, e = 0, n = 0, o = 0;
        for (int i = 0; i < str.length(); i++) {
            char item = str.charAt(i);
            //利用 字码表
            if((item >= 0x4e00)&&(item <= 0x9fbb) || (item >= 65 && item <= 90) || (item >= 97 && item <= 122)) {
                a++;
            }else if (item >= 48 && item <= 57){
                n++;
            }else if (Character.isSpaceChar(item)){
                e++;
            }else {
                o ++;
            }
        }
        System.out.println(a + "\n" + e + "\n" + n + "\n" + o);
    }
}

发表于 2023-09-17 00:32:39 回复(0)
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            // 存储不同字符的次数,可以用双值型数据类型hashMap
            HashMap<String, Integer> map = new HashMap<>();

            for (int i = 0; i < line.length(); i++) {
                char c = line.charAt(i);
                if (Character.isLetter(c)) {
                    String key = "character";
                    map.put(key, map.getOrDefault(key, 0) + 1);
                } else if (c == ' ') {
                    String key = "space";
                    map.put(key, map.getOrDefault(key, 0) + 1);
                } else if (c >= '0' && c <= '9') {
                    String key = "digital";
                    map.put(key, map.getOrDefault(key, 0) + 1);
                } else {
                    String key = "other";
                    map.put(key, map.getOrDefault(key, 0) + 1);
                }
            }

            System.out.println(map.getOrDefault("character", 0));
            System.out.println(map.getOrDefault("space", 0));
            System.out.println(map.getOrDefault("digital", 0));
            System.out.println(map.getOrDefault("other", 0));
        }
    }
}

发表于 2023-08-09 11:00:40 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String input = in.nextLine();
            funHJ40(input);
        }
    }
    public static void funHJ40(String str) {
        System.out.println(str.length() - str.replaceAll("[A-Za-z]", "").length());
        System.out.println(str.length() - str.replaceAll("\\s", "").length());
        System.out.println(str.length() - str.replaceAll("[0-9]", "").length());
        System.out.println(str.length() - str.replaceAll("[^0-9a-zA-Z\\s]",
                           "").length());
    }
}

发表于 2023-06-17 21:29:57 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        int eNum = 0;
        int sNum = 0;
        int mNum = 0;
        int oNum = 0;

        char[] chars = str.toCharArray();
        for (char aChar : chars) {
            if((aChar >= 65 && aChar <= 90) || (aChar >= 97 && aChar <= 122)) {
                eNum++;
            }else if(aChar >= 48 && aChar <= 57) {
                mNum++;
            }else if(aChar == 32) {
                sNum++;
            }else oNum++;
        }
        System.out.println(eNum);
        System.out.println(sNum);
        System.out.println(mNum);
        System.out.println(oNum);
    }
}


发表于 2023-06-06 23:11:13 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String a = in.nextLine();
        int num = 0;
        int letter = 0;
        int kou = 0;
        int other = 0;
        for (int i = 0; i < a.length(); i++) {
            char cha = a.charAt(i);
            if (Character.isDigit(cha)) {
                num++;
                continue;
            }
            if (Character.isLetter(cha)) {
                letter++;
                continue;
            }
            if (Character.isSpaceChar(cha)) {
                kou++;
                continue;
            }
            other++;
        }
        System.out.println(letter);
        System.out.println(kou);
        System.out.println(num);
        System.out.println(other);
    }
}

发表于 2023-05-30 16:44:54 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str=in.nextLine();
        int c=0;
        int space=0;
        int math=0;
        int other=0;
        for(int i=0;i<str.length();i++){
            if(Character.isLetter(str.charAt(i))){
                c++;
            }else if(Character.isDigit(str.charAt(i))){
                math++;
            }else if(Character.isSpace(str.charAt(i))){
                space++;
            }else{
                other++;
            }

        }
        System.out.println(c);
        System.out.println(space);
        System.out.println(math);
        System.out.println(other);
    }
}

发表于 2023-05-28 15:18:27 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();

        int total_lenth = str.length();

        str = str.replaceAll("[a-zA-Z]", "");
        System.out.println(total_lenth-str.length());//英文
        String str1 = str.replaceAll("\\s", "");
        System.out.println(str.length()-str1.length());//空格
        String str2 = str1.replaceAll("[0-9]", "");
        System.out.println(str1.length()-str2.length());//数字
        System.out.println(str2.length());//其他
    }
}
发表于 2023-03-29 17:09:08 回复(0)

问题信息

难度:
80条回答 46852浏览

热门推荐

通过挑战的用户

查看代码
统计字符