Golang实现字符串倒序的几种解决方案

 更新时间:2017年10月10日 09:32:47   作者:小立立  
给定一个字符串,按单词将该字符串逆序是我们大家在开发中可能会遇到的一个需求,所以下面这篇文章主要给大家介绍了关于Golang如何实现字符串倒序的几种解决方案,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

字符串倒置如下:

Hello World --> dlroW olleH

解决方案1:

  length := len(str)
  array := make([]string , length)
  for i , v := range str{
   array[i] = string(v)
  }
  for i := 0 ; i < length/2 ; i++ {
   array[i], array[length -i - 1] = array[length - i -1 ], array[i]
  }
  str = ""
  for _ , v := range array {
   str += v
  }

大致想法是: 

      str -循环-> array -循环-> 倒置 --循环--> str

可以转换中文.

问题:

     看上去比较繁琐, 而且使用3层循环, 效率肯定不高,

解决方案2

 bytes := []rune(str)
 for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
  bytes[from] , bytes[to] = bytes[to] , bytes[from]
 }
 str = string(bytes)
 return str

使用一层循环, 倒置之后 直接使用 go 内置的 string 函数将 []byte 转换为string

大致思路: 

    string --直接使用构建数组的方法, 将str 传入进去, 得到 array --> []byte ---for 循环---> 倒置 ---内置的 string 函数--> string

问题: 

     不能转换 byte 类型

解决方案3 :

 bytes := []rune(str)
 for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
  bytes[from] , bytes[to] = bytes[to] , bytes[from]
 }
 str = string(bytes)
 return str 

解决方案2不能转换中文字符的问题:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

参考:

string rune byte 的关系

相关文章

  • Gin框架自带参数校验的使用详解

    Gin框架自带参数校验的使用详解

    这篇文章主要为大家详细介绍了如何使用Gin框架自带的参数校验,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-09-09
  • 在golang中使用Sync.WaitGroup解决等待的问题

    在golang中使用Sync.WaitGroup解决等待的问题

    这篇文章主要介绍了在golang中使用Sync.WaitGroup解决等待的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • golang json性能分析详解

    golang json性能分析详解

    json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。下面这篇文章主要给大家详细分析介绍了golang json性能的相关资料,需要的朋友可以参考下。
    2018-02-02
  • Go语言下载网络图片或文件的方法示例

    Go语言下载网络图片或文件的方法示例

    这篇文章主要介绍了Go语言下载网络图片或文件的方法示例,文中通过示例代码介绍的非常详细,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • golang gorm 操作mysql及gorm基本用法

    golang gorm 操作mysql及gorm基本用法

    golang 官方的那个操作mysql的有点麻烦所以就使用了gorm,下面就gorm的使用做下简单介绍,感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • 详解Golang实现请求限流的几种办法

    详解Golang实现请求限流的几种办法

    这篇文章主要介绍了详解Golang实现请求限流的几种办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • goland 设置project gopath的操作

    goland 设置project gopath的操作

    这篇文章主要介绍了goland 设置project gopath的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • GO语言make()分配用法实例

    GO语言make()分配用法实例

    这篇文章主要介绍了GO语言make()分配用法,实例分析了make()的功能及使用技巧,需要的朋友可以参考下
    2015-02-02
  • 一文带大家了解Go语言中的内联优化

    一文带大家了解Go语言中的内联优化

    内联优化是一种常见的编译器优化策略,通俗来讲,就是把函数在它被调用的地方展开,这样可以减少函数调用所带来的开销,本文主要为大家介绍了Go中内联优化的具体使用,需要的可以参考下
    2023-05-05
  • go特性之数组与切片的问题

    go特性之数组与切片的问题

    这篇文章主要介绍了go特性之数组与切片的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11

最新评论