golang语言字符串从右方替换字符串(参考官方strings.Replace)

这篇具有很好参考价值的文章主要介绍了golang语言字符串从右方替换字符串(参考官方strings.Replace)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

func main() {
    fmt.Println(ReplaceRight("niqinge~很帅~也很棒", "~", "@@", 1))
    fmt.Println(ReplaceRight("niqinge~很帅~也很棒", "~", "@@", 2))
}

func ReplaceRight(s, old, new string, n int) string {
    if old == new || n == 0 {
        return s // avoid allocation
    }

    // Compute number of replacements.
    m := strings.Count(s, old)
    if m == 0 {
        return s // avoid allocation
    } else if n < 0 || m < n {
        n = m
    }

    // Apply replacements to buffer.
    var b strings.Builder
    b.Grow(len(s) + n*(len(new)-len(old)))
    var preIndex int
    for i := 0; i < m; i++ {
        index := strings.Index(s[preIndex:], old)

        if index < 0 {
            b.WriteString(s[preIndex:])
            break
        }

        if i < m-n {
            b.WriteString(s[preIndex : index+preIndex+len(old)])
            preIndex += index + len(old)
            continue
        }

        b.WriteString(s[preIndex : index+preIndex])
        b.WriteString(new)
        preIndex += index + len(old)
    }
    b.WriteString(s[preIndex:])
    return b.String()
}

输出: 
niqinge~很帅@@也很棒
niqinge@@很帅@@也很棒
参考官方方法: func Replace(s, old, new string, n int) string {}

文章来源地址https://www.toymoban.com/news/detail-609053.html

到了这里,关于golang语言字符串从右方替换字符串(参考官方strings.Replace)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java替换字符串最后指定字符

    需求感想省略...... 代码如下: public static void main(String[] args) { 测试案例1:         String str = \\\"|1|2|3||||||||||||||\\\";  //偶位数 测试案例2:         String str = \\\"|1|2|3|||||||||||\\\";   //奇数位 --------------------------------------------------------------------------------------------------------------------

    2024年02月12日
    浏览(47)
  • C++将字符串中包含指定字符串范围内的字符串全部替换

    将指定字符串所在的范围之内的字符串全部替换为指定的字符串。如: 源字符串: 转换后的字符串: 或者转换为: 本文就是记录一种将上述字符串替换成功的方法。其中转换之后的第一个字符串,实际上是将原有字符串中 “$START$” 和 “$END$” 替换为 “” (空字符串);

    2024年02月07日
    浏览(57)
  • Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式

    1、String.format 最原始最基础的方式。 使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。 示例: 2、MessageFormat 如果遇到一个参数需要替换模板中多个占位的场景,更友好的方式是MessageFormat,由jdk原生提供支持。 示例: 举例:将

    2024年02月16日
    浏览(57)
  • [字符串操作] 单词替换

    题目描述 输入一个字符串,以回车结束(字符串长度=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。 关于输入 输入包括3行:   第1行是包含多个单词的字符串

    2024年02月04日
    浏览(35)
  • java 字符串替换

    在Java 中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll() replace() 方法 replace()方法用于将目标字符串中的指定字符(串)替换成新的字符(串)replace(String oldChar, String newChar) replaceFirst() 方法 replaceFirst()方法用于将目标字符串中匹配某正则表达式的第一

    2024年02月02日
    浏览(40)
  • C#字符串占位符替换

    string.Format()第一个双引号中,{n}是占位符,替换为后面对应的第n个数据,第一个双引号中的其他内容直接输出;运行如下; 比使用加号拼接字符串方便一些;在 Console.WriteLine 中也可以使用; 

    2024年02月13日
    浏览(52)
  • Java中的字符串替换

    在Java中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll(),下面我们就来详细看一下三种的用法!     下面这套 Java300集 视频专门为零基础而制,适合准备入行Java开发的零基础,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由

    2024年02月11日
    浏览(46)
  • 使用命令替换目录下字符串

    在这里插入代码片 举个例子: sed -i “s/手机/恭喜发财/g” grep 手机 -rl res 这条命令使用了 sed 命令和 grep 命令来搜索并替换文件中的文本。 grep 手机 -rl res :在目录 res 及其子目录中递归搜索包含\\\"手机\\\"的文件,并返回匹配的文件名列表。 sed -i \\\"s/手机/恭喜发财/g\\\" :对

    2024年02月10日
    浏览(39)
  • 【shell】字符串截取&替换&分割

    目录 一、字符串输出 二、字符串截取 1.根据下标截取 2.根据指定字符截取 (1)使用 # 截取指定字符右边的所有内容 (2)使用 % 截取指定字符左边的所有内容 三、字符串替换 1.替换一个(从左到右) 2.替换一个(从右到左) 3.替换所有 四、字符串分割 shell字符串可以用

    2024年01月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包