如何使用Golang判断字符串前缀后缀_Golang strings HasPrefix与HasSuffix示例


strings.HasPrefix 和 strings.HasSuffix 是 Go 标准库中高效、安全的内置函数,用于精确判断字符串前缀和后缀,长度检查优先、逐字节匹配、空串恒真、大小写敏感,不支持正则。

直接用 strings.HasPrefixstrings.HasSuffix 就行,它们是 Go 标准库中高效、安全的内置函数,无需自己写循环或截取子串。

判断字符串是否以指定前缀开头

使用 strings.HasPrefix(s, prefix),返回 bool。它会先检查长度,再逐字节比对,不会 panic,即使 prefix 比原字符串长也会安全返回 false

  • 前缀为空字符串("")时,恒返回 true
  • 区分大小写,如 HasPrefix("Hello", "hello")false
  • 适合用于路径判断(如 "./config.yaml" 是否以 "./" 开头)、协议识别(如 "https://")等场景

判断字符串是否以指定后缀结尾

对应函数是 strings.HasSuffix(s, suffix),行为逻辑与 HasPrefix 完全对称:长度检查优先,逐字节匹配,空后缀恒为 true,大小写敏感。

  • 常见用途包括文件类型校验(HasSuffix(filename, ".go"))、URL 清洗(是否以 "/" 结尾)
  • 注意:不支持通配符或正则,只做精确字面匹配
  • 若需忽略大小写,可先统一转小写:strings.HasSuffix(strings.ToLower(s), strings.ToLower(suffix))

实际使用示例代码

下面是一个简洁可用的片段:

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "golang-example.com"

    fmt.Println(strings.HasPrefix(s, "golang")) // true
    fmt.Println(strings.HasPrefix(s, "GOLANG")) // false(大小写敏感)
    fmt.Println(strings.HasSuffix(s, ".com"))   // true
    fmt.Println(strings.HasSuffix(s, ".org"))   // false
}

基本上就这些。两个函数轻量、零分配、语义清晰,日常处理字符串边界匹配足够可靠。


# go  # golang  # 字节  # ai  # 标准库  # 字符串  # bool  # 循环  # https  # 不支持  # 库中  # 是一个  # 也会  # 就行  # 一转  # 只做  # 会先  # 为空  # 比对 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: mac怎么查看wifi密码_MAC查看已连接WiFi密码方法【技巧】  Win11怎么关闭应用权限_Windows11相机麦克风隐私管理  Mac如何使用听写功能_Mac语音输入打字【效率技巧】  如何用正则表达式精确匹配“start”到“end”之间最多含一个换行符的文本段  windows 10专注助手怎么关闭_windows 10禁用通知提醒功能方法  Laravel 查询 JSON 列:高效筛选包含数组中任意值的记录  Win11怎么连接蓝牙耳机_Win11蓝牙设备配对与连接教程【步骤】  如何自定义Windows终端的默认配置文件?(PowerShell/CMD)  c++ namespace命名空间用法_c++避免命名冲突  Win11声音太小怎么办_Windows 11开启响度均衡增强音量【技巧】  Golang如何实现基本的用户注册_Golang用户注册表单处理示例  如何快速验证Golang安装是否成功_运行go version和hello world示例  Win11如何添加/删除输入法 Win11切换中英文输入法快捷键【设置】  c++中如何计算坐标系中两点间距离_c++勾股定理求距离  Windows服务无法启动错误1067是什么_进程意外终止的解决方法  Python面向对象实战讲解_类与设计模式深入理解  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  Windows10蓝屏代码DPC_WATCHDOG_VIOLATION_Win10死机修复指南  C++中的协变与逆变是什么?C++函数指针与返回类型详解【类型系统】  php8.4匿名类怎么用_php8.4匿名类创建与使用场景【介绍】  Win10如何卸载WindowsDefender_Win10卸载Defender教程【方法】  c++中的Tag Dispatching是什么_c++利用标签分发优化函数重载【元编程】  Windows电脑如何截屏?(四种快捷方法)  Win11输入法切换快捷键怎么改_Windows 11自定义语言切换键位【教程】  c++中如何对数组进行排序_c++数组排序算法汇总  Win11时间格式怎么改成12小时制 Win11时间格式切换教程【步骤】  Windows11怎么自定义任务栏_Windows11任务栏自定义教程【步骤】  Win11怎么关闭键盘按键音_Win11禁用打字声音反馈【教程】  Windows10电脑怎么设置文件权限_Win10安全选项卡所有者修改  Windows10怎么卸载预装软件_Windows10预装软件卸载步骤【教程】  Win10 BitLocker加密教程 Win10给磁盘驱动器上锁【安全】  c# await 一个已经完成的Task会发生什么  Django 密码修改后会话失效的解决方案  php高频调试功能有哪些_php常用调试函数与工具汇总【解答】  WindowsUSB驱动安装异常怎么办_USB驱动重建与恢复教程  c++的mutex和lock_guard如何使用 互斥锁保护共享资源【多线程】  如何在Golang中实现并发消息队列消费者_Golang channel消息消费实践  Win11开机速度慢怎么优化_Win11系统启动加速设置指南【方法】  手机php文件怎么变成mp4_安卓苹果打开php转mp4方法【教程】  Python模块的__name__属性如何由导入方式决定?  C#如何序列化对象为XML XmlSerializer用法  Win11怎么更改管理员名字 Win11修改账户名称详细步骤【教程】  如何使用Golang指针与接口结合_实现方法调用和动态类型  Win11相机打不开提示错误怎么修_相机权限开启与驱动修复【影像修复】  Drupal 中 HTML 链接被重复转义导致渲染异常的解决方案  为什么本地php环境运行php脚本卡顿_php执行效率优化方法与设置【说明】  Win11怎样安装剪映专业版_Win11安装剪映教程【步骤】  Win11怎么查看局域网电脑_Windows 11网络邻居发现设置【技巧】  PHP 中 require() 语句返回值的用法详解  Win11怎么设置桌面图标间距_Windows11注册表IconSpacing修改 

 2026-01-02

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.