MST
星途 面试题库

面试题:Go中如何统计字符串中特定字符出现的次数

在Go语言中,给定一个字符串,比如 "hello world",请编写一个函数来统计其中字符 'l' 出现的次数,并阐述所用到的字符串处理函数及其原理。
49.4万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func countL(s string) int {
    count := 0
    for _, char := range s {
        if char == 'l' {
            count++
        }
    }
    return count
}

在上述代码中,使用了Go语言的字符串遍历方式:for _, char := range s。这种方式会将字符串s拆分成一个个的rune(Go语言中字符的类型),然后依次赋值给char。这里并没有使用特定的字符串处理函数,而是通过遍历字符串中的每个字符,逐个检查是否为目标字符'l',如果是则计数加1,最后返回计数结果。

  1. 遍历方式原理
    • for _, char := range srange关键字用于迭代字符串、数组、切片、映射等数据结构。在字符串的场景下,它会将字符串按rune类型解析。_表示忽略索引值(因为在这个场景下我们只关心字符本身,不关心其索引位置),char则依次获取字符串中的每个rune字符。
  2. 字符比较原理
    • if char == 'l':Go语言中字符比较使用==操作符,直接比较两个字符的rune值是否相等。如果相等则说明找到了目标字符,将计数变量count加1。
  3. 返回结果
    • 最后函数返回count,即字符'l'在字符串中出现的次数。

可以通过如下方式调用这个函数:

func main() {
    s := "hello world"
    result := countL(s)
    fmt.Printf("字符 'l' 出现的次数: %d\n", result)
}