golang判断字符串是否包含中文

在Golang中,判断字符串是否包含中文可以使用多种实现方法:

方法一:

可以使用unicode包中的函数 func Is(rangeTab *RangeTable, r rune) bool 来判断字符是否属于中文的Unicode范围。以下是一个基于该方法的示例代码:

Go 复制代码
package main
 
import (
    "fmt"
    "unicode"
)
 
func IsContainChinese(str string) bool {
    for _, r := range str {
        if unicode.Is(unicode.Scripts["Han"], r) {
            return true
        }
    }
    return false
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}

方法二:

可以使用unicode包中的函数 func In(r rune, ranges ...*RangeTable) bool 来判断字符是否在中文的Unicode范围内。以下是一个基于该方法的示例代码:

Go 复制代码
package main
 
import (
    "fmt"
    "unicode"
)
 
func IsContainChinese(str string) bool {
    for _, r := range str {
        if unicode.In(r, unicode.Scripts["Han"]) {
            return true
        }
    }
    return false
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}

方法三:

可以使用正则表达式来匹配中文字符,使用regexp包中的函数 func MatchString(pattern string, s string) (matched bool, err error) 来判断字符串是否匹配正则表达式。以下是一个基于该方法的示例代码:

Go 复制代码
package main
 
import (
    "fmt"
    "regexp"
)
 
func IsContainChinese(str string) bool {
    pattern := "[\u4e00-\u9fa5]" // 匹配中文字符的正则表达式
    matched, _ := regexp.MatchString(pattern, str)
    return matched
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}
相关推荐
某个默默无闻奋斗的人11 小时前
高性能 MySQL 进阶:索引核心原理、失效场景与底层优化全解
数据库·mysql
极限实验室13 小时前
INFINI Labs 产品更新 - Easysearch 2.1.0 新增高性能 Rules 规则引擎插件,数据探索 Discover 等
数据库·产品
鹿角片ljp14 小时前
苍穹外卖 day05:店铺营业状态设置与Redis入门实战
数据库·redis·缓存
m0_7434703715 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
Demon_Hao15 小时前
JAVA通过Redis实现Key分区分片聚合点赞、收藏等计数同步数据库,并且通过布隆过滤器防重复点赞
java·数据库·redis
掘根16 小时前
【微服务即时通讯】消息转发子服务
数据库·oracle
喜欢喝果茶.16 小时前
SQL 预处理
数据库·sql
数据科学小丫17 小时前
Python 数据存储操作_数据存储、补充知识点:Python 与 MySQL交互
数据库·python·mysql
Knight_AL17 小时前
Nacos 启动问题 Failed to create database ’D:\nacos\nacos\data\derby-data’
开发语言·数据库·python
xianjian091218 小时前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql