首页 > 试题广场 >

计算某字符出现次数

[编程题]计算某字符出现次数
  • 热度指数:1365544 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围:

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。



输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例1

输入

ABCabc
A

输出

2
推荐
import java.util.*;
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        String all="";
        String one="";
        char[] ac;
        char temp;
        int num=0;
        while(s.hasNext())
        {
            //s.toUpperCase(),String 转化为大写
            //s.toLowerCase(),String 转化为小写
            //String字符转换,s.toCharArray()与s.charAt(index)
            //char字符转换,String.valueOf(c)转化为String
        	all=s.nextLine();
            one=s.nextLine();
            //存放原来所有的
            ac=all.toCharArray();
            //存放要的字符
            //temp=one.charAt(0);
            for(int i=0;i<ac.length;i++)
            {
            	if(one.equalsIgnoreCase(String.valueOf(ac[i])))    
                    num++;
            }
            System.out.println(num);
        }
        
    }
    
}

编辑于 2017-03-04 16:05:10 回复(45)
import java.util.Scanner;
//chatgpt
public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        //读取一个字符串
        String inputString = s.nextLine();
        //读取一个字符,取输入字符串第一位
        char targetChar = s.nextLine().charAt(0);
        //题目不要区分大小写,调用方法统一转为小写字符
        inputString = inputString.toLowerCase();
        targetChar = Character.toLowerCase(targetChar);
        //遍历输入字符串
        int count = 0;
        for(int i =0;i < inputString.length() ;i++){
            if(inputString.charAt(i) == targetChar){
                count++;
            }
        }

        System.out.println(count);
    }

}
发表于 2024-11-14 17:34:37 回复(0)
程序只需要一次读取输入的字符串和字符,然后遪行遍历字符串中的字符,进行比较和统计。
为什么计算两次循环的程序还比我快呢,大家知道为什么吗?
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String inputString = br.readLine().toLowerCase();
        char targetChar = Character.toLowerCase((char)br.read());
        int count = 0;
        for (char c : inputString.toCharArray()) {
            if (c == targetChar) {
                count++;
            }
        }
        System.out.println(count);
        br.close();
    }

}


发表于 2024-09-21 21:22:41 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        String idx = in.nextLine().toLowerCase();
        String lowerCaseInput = input.toLowerCase();
        int location = 0;
        int times = 0;
        while ((location = lowerCaseInput.indexOf(idx,location)) != -1){
            location ++;
            times ++ ;
        }
        System.out.println(times);
    }
}

发表于 2024-09-09 22:47:55 回复(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 a = in.nextLine().toUpperCase();
        String b = in.nextLine().toUpperCase();
        String c = a.replaceAll(b,"");
        System.out.println(a.length()-c.length());
        in.close();
    }
    // public static void main(String[] args) {
    //     Scanner in = new Scanner(System.in);
    //     // 注意 hasNext 和 hasNextLine 的区别
    //     while (in.hasNext()) { // 注意 while 处理多个 case
    //         String a = in.nextLine().trim().toUpperCase();
    //         String b = in.next().toUpperCase();
    //         int c = 0;
    //         for (int i = 0; i < a.length(); i++) {
    //             if (b.charAt(0) == a.charAt(i)) {
    //                 c ++;
    //             }
    //         }
    //         System.out.println(c);
    //     }
    // }
}
发表于 2024-09-09 22:07:56 回复(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 line = in.nextLine().toUpperCase();

        String charStr = in.nextLine().toUpperCase();
       
       
        line = line.replaceAll(charStr,charStr+"#");
        String[] array = line.split(charStr);
       
     
        System.out.println(array.length-1);
    }
}
发表于 2024-08-20 08:52:41 回复(0)
import java.util.Locale;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String str1 = scanner.nextLine();
            String str2 = scanner.nextLine();
            System.out.println(str1.length() - str1.toLowerCase().replace(str2.toLowerCase(), "").length());
        }
    }
}

发表于 2024-07-29 21:28:21 回复(0)
用时短的代码基本都是在测试数据的输入方式上下功夫,这样的排行合适吗?
发表于 2024-07-17 23:56:41 回复(0)
为什么我的hashmap无法赋值啊
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        
        // 注意 hasNext 和 hasNextLine 的区别
        String str=in.nextLine();
        String ch=in.nextLine();
        str=str.toLowerCase();
        ch=ch.toLowerCase();
        char[] ch1=str.toCharArray();
        char ch2=ch.charAt(0);
        HashMap<Character,Integer> cont=new HashMap<>();
        cont.replace(ch2,0);
        for(int i=0;i<ch1.length;i++)
        {
            if(ch1[i]==ch2)
            {
                int j=0;
                j=cont.get(ch2);
                cont.replace(ch2,j);
            }
        }
        System.out.println(cont.get(ch2));
    }
    }


发表于 2024-07-10 20:20:46 回复(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 a = in.nextLine().toLowerCase();
            String b = in.nextLine().toLowerCase();
            System.out.println(a.length() - a.replaceAll(b,"").length());
        }
    }
}

发表于 2024-07-05 11:12:42 回复(0)
计算某字符在字符串中出现次数,Java实现,时间复杂度O(n)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            char ch = scanner.nextLine().charAt(0);
            System.out.println(charCount(str, ch));

        }
    }

    public static int charCount(String str, char ch) {
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if (Character.toLowerCase(str.charAt(i)) == Character.toLowerCase(ch)) {
                count++;
            }
        }
        return count;
    }
}


发表于 2024-06-27 22:06: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 str = in.nextLine().toLowerCase();
            char ch = in.nextLine().toLowerCase().charAt(0);
            System.out.println(test(str, ch));
        }
    }

    private static int test(String str, char ch){
        int count = 0;
        for(char c : str.toCharArray()){
            if(c==ch)
                count++;
        }

        return count;
    }
}

发表于 2024-06-01 22:12:37 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String line = in.nextLine();
        String matchStr = in.nextLine();
        char matchCharLowerCase = matchStr.toLowerCase().toCharArray()[0];
        char matchCharUpperCase = matchStr.toUpperCase().toCharArray()[0];
        char[] chars =  line.toCharArray();
        int result = 0;
        for(int i=0;i<chars.length;i++ ){
            if( (chars[i] == matchCharLowerCase) ||
             (chars[i] == matchCharUpperCase)){
                result ++;
            }
        }
        System.out.println(result);
    }
}

编辑于 2024-03-27 16:36:35 回复(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 a = in.nextLine();
        String b =in.next();

        int sum=0;
        for(int i=0;i<a.length();i++){
           String temp = ""+a.charAt(i);
           if(temp.equalsIgnoreCase(b)){
            sum=sum+1;
           }
        }
        System.out.println(sum);

}
}


编辑于 2024-03-19 16:35:34 回复(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().toLowerCase();
            String b = in.nextLine().toLowerCase();//一定要加toLowerCase(),否则会出现字符为空客的情况,结果为0;
            //s=s.toLowerCase();

            System.out.println(s.length()-s.replaceAll(b,"").length());
        }
    }
}
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().toLowerCase();
            String b = in.nextLine().toLowerCase();//一定要加toLowerCase(),否则会出现字符为空客的情况,结果为0;
            //s=s.toLowerCase();

            System.out.println(s.length()-s.replaceAll(b,"").length());
        }
    }
}

编辑于 2024-03-18 00:17:31 回复(0)
就没有人是用replaceAll的嘛....

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine().toUpperCase();
        String s = in.nextLine().toUpperCase();
        int i = str.length();
        int j = str.replaceAll(s,"").length();
        System.out.println(i - j);
    }
}
编辑于 2024-03-11 13:18:44 回复(0)
这个哪里有问题啊,在idea里面都能运行
import java.util.Scanner;

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

        Scanner b = new Scanner(System.in);

        String str1 = a.nextLine();
        String str2 = b.nextLine();

        if(!str1.isEmpty() && str1.length()<=1000){
            String[] str3 = str1.split("");
            int count = 0;
            for(int i = 0;i < str3.length-1;i++){
                if(str3[i].equals(str2) || str3[i].toUpperCase().equals(str2.toUpperCase())){
                    count++;
                }

            }
            System.out.println(count);
        }

    }
}

编辑于 2024-03-07 14:56:56 回复(1)
虽然做出来了,但感觉用MAP有点多余了。。
import java.util.Scanner; 
import java.util.HashMap;
import java.util.Map;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
 Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        String ch = in.next();
        Map<String, Integer> map = new HashMap<>();
        map.put(ch, 0);
        for(int i = 0; i < str.length(); i++){
            if(map.containsKey(String.valueOf(str.charAt(i)).toLowerCase()) || map.containsKey(String.valueOf(str.charAt(i)).toUpperCase())){
                map.put(ch,map.get(ch) + 1);
            }
        }
        System.out.println(map.get(ch));
    }
}

编辑于 2024-03-07 10:46:03 回复(0)
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        List<String> strArr = new ArrayList<String>();
        while (in.hasNext()) { // 注意 while 处理多个 case
            String line = in.nextLine();
            strArr.add(line);
        }
        System.out.println(getCodeRepeatNum(strArr));
    }

    /**
    *  将两个 字符串转换为 字符,遍历 第一行字符,看第二行中出现了 几次,之后返回 结果
    */
    public static int getCodeRepeatNum(List<String> list) {
        char [] chars = list.get(0).toUpperCase().toCharArray();
        char code = list.get(1).toUpperCase().toCharArray()[0];
        int num = 0;
        for (char c : chars) {
            if (c == code) {
                num++;
            }
        }
        return num;
    }
}

编辑于 2024-01-27 22:30:38 回复(0)