首页 > 试题广场 >

计算某字符出现次数

[编程题]计算某字符出现次数
  • 热度指数:1302484 时间限制: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)
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	s, _ := reader.ReadString('\n')
	s = strings.TrimSpace(s) // 去掉字符串末尾的换行符
	fmt.Println(Stats(s))
}

func Stats(s string) int {
	if strings.Contains(s, " ") {
		words := strings.Split(s, " ")
		lastWord := words[len(words)-1]
		return len(lastWord)
	} else {
		// 如果字符串中没有空格,那么整个字符串就是一个单词
		return len(s)
	}
}

作者:阿塔利亚
链接:https://www.nowcoder.com/discuss/601937124866174976
来源:牛客网

发表于 2024-03-26 00:44:14 回复(0)
fmt的Scan真的绝 建议还是bufio
发表于 2023-03-17 15:07:37 回复(0)
package main
 
import (
    "fmt"
    "strings"
    "bufio"
    "os"
)
 
func main() {
    var str, ru string
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    str = scanner.Text()
    scanner.Scan()
    ru = scanner.Text()
 
    str = strings.ToLower(str)
    ru = strings.ToLower(ru)
    n := 0
    for _, v := range str{
        if string(v) == ru{
            n++
        }
    }
    fmt.Println(n)
 
}
关键在于scan()每次只能读一行。
发表于 2023-02-07 17:00:41 回复(0)
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	char, _ := reader.ReadString('\n')
	char = strings.Replace(char, "\n", "", -1)
	char = strings.ToUpper(char)
	target, _ := reader.ReadString('\n')
	target = strings.Replace(target, "\n", "", -1)
	target = strings.ToUpper(target)
	fmt.Println(strings.Count(char, target))
}

发表于 2022-10-19 20:43:03 回复(0)
首先想到的就是这个
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {

	input:=bufio.NewScanner(os.Stdin)
	input.Scan()
	strA:=input.Text()
	input.Scan()
	strB:=input.Text()

	strA=strings.ToLower(strA) 
	strB=strings.ToLower(strB) 

	parts:=strings.Split(strA, strB)
	fmt.Printf("%d",len(parts)-1)
}

发表于 2022-07-31 17:58:13 回复(1)
fxxk ACM mode!
本地测试过线上报错的测试用例都没错
package main
import "strings"
import "fmt"
func count(s, target string) (n int) {
	s = strings.ToLower(s)
	target = strings.ToLower(target)
	var count int
	for _, v := range s {
		if target == string(v) {
			count++
		}
	}
	return count
}
func main(){
    s:="ABCA"
    t:="a"
    n:=count(s,t)
    fmt.Println(n)
}

发表于 2022-06-27 12:14:16 回复(0)
package main
import (
    "bufio"
    "os"
    "strings"
    "fmt"
)
func main(){
    reader:= bufio.NewReader(os.Stdin)
    text,_,_:=reader.ReadLine()
    char,_,_:=reader.ReadLine()
    var str string=strings.ToUpper(string(text))
    var ch  string=strings.ToUpper(string(char))
    fmt.Println(strings.Count(str,ch))
}

发表于 2022-03-12 17:43:36 回复(0)
package main
import (
    "strings"
    "fmt"
    "bufio"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    str := scanner.Text()
    scanner.Scan()
    targetChar := scanner.Text()
    array :=  strings.Split(str, "")
    count := 0
    for _, char := range array {
        if strings.ToLower(char) == strings.ToLower(targetChar) {
            count ++
        }
    }
    fmt.Println(count)
}

发表于 2022-02-24 10:03:09 回复(0)
用go正则匹配是不是有bug 我本地都对 就他输出0
发表于 2021-12-25 17:17:52 回复(0)
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main()  {

	// 读取输入
	reader := bufio.NewReader(os.Stdin)
	str,_ := reader.ReadString('\n')
	// 去掉末尾"\n"
	//str = strings.Trim(str,"\n")
	str = strings.Replace(str,"\n"," ", -1)

	//fmt.Println("str:" + str)

	// 读取输入
	var str2 string
	fmt.Scanln(&str2)
	str2 = strings.Replace(str2,"\n"," ", -1)

	//fmt.Println("str2:" + str2)

	// 统计字符出现次数
	var num int = 0
	for _,v := range str {
		//fmt.Println(reflect.TypeOf(v))
		if string(v) == str2 || strings.ToLower(string(v)) == str2 {
			num ++
		}
	}
	fmt.Println(num)
}
# 为何IDE可以通过,但牛客网上咋通不过测试呢
发表于 2021-11-06 13:43:48 回复(0)
package main

import (
    "bufio"
    "fmt"
    "os"
    "unicode"
    "unicode/utf8"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    str := scanner.Text()
    scanner.Scan()
    char, _ := utf8.DecodeRuneInString(scanner.Text())
    char = unicode.ToLower(char)

    n := 0
    for _, r := range str {
        if unicode.IsLetter(r) && unicode.ToLower(r) == char {
            n++
        }
    }

    fmt.Println(n)
}
发表于 2021-07-26 22:03:41 回复(1)