1. //字符串反转
    package main
  2.  
  3. import "fmt"
  4.  
  5. func reverse(str string) string {
  6. var result string
  7. strLen := len(str)
  8. for i := ; i < strLen; i++ {
  9. result = result + fmt.Sprintf("%c", str[strLen-i-])
  10. }
  11. return result
  12. }
  13. func reverse1(str string) string {
  14. var result []byte
  15. tmp := []byte(str)
  16. length := len(str)
  17. for i := ; i < length; i++ {
  18. result = append(result, tmp[length-i-])
  19. }
  20. return string(result)
  21. }
  22. func main() {
  23. var str1 = "hello"
  24. str2 := "world"
  25. str3 := fmt.Sprintf("%s %s", str1, str2)
  26. n := len(str3)
  27. fmt.Println(str3)
  28. fmt.Printf("len(str3)=%d\n", n)
  29. substr := str3[:]
  30. fmt.Println(substr)
  31. substr = str3[:]
  32. fmt.Println(substr)
  33. result := reverse(str3)
  34. fmt.Println(result)
  35. result = reverse1(result)
  36. fmt.Println(result)
  37.  
  38. }

字符串练习

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. )
  6.  
  7. func testString() {
  8. var str = "hello"
  9. fmt.Printf("str[0]=%c len(str)=%d\n", str[], len(str))
  10.  
  11. for index, val := range str {
  12. fmt.Printf("str[%d]=%c\n", index, val)
  13. }
  14.  
  15. //str[0] = '0'
  16. //fmt.Println("after modify:", str)
  17. var byteSlice []byte
  18. byteSlice = []byte(str)
  19. byteSlice[] = ''
  20. str = string(byteSlice)
  21.  
  22. fmt.Println("after modify:", str)
  23.  
  24. fmt.Printf("len(str)=%d\n", len(str))
  25.  
  26. str = "hello, 少林之巅"
  27. fmt.Printf("len(str)=%d\n", len(str))
  28.  
  29. str = "中问123"
  30. fmt.Printf("last:len(str)=%d\n", len(str))
  31.  
  32. var b rune = '中'
  33. fmt.Printf("b=%c\n", b)
  34.  
  35. var runeSlice []rune
  36. runeSlice = []rune(str)
  37. fmt.Printf("str 长度:%d, len(str)=%d\n", len(runeSlice), len(str))
  38. }
  39.  
  40. func testReverseStringV1() {
  41. var str = "hello中文 "
  42. var bytes []byte = []byte(str)
  43.  
  44. for i := ; i < len(str)/; i++ {
  45. tmp := bytes[len(str)-i-]
  46. bytes[len(str)-i-] = bytes[i]
  47. bytes[i] = tmp
  48. }
  49.  
  50. str = string(bytes)
  51. fmt.Println(str)
  52. }
  53.  
  54. func testReverseStringV2() {
  55. var str = "hello中文 "
  56. var r []rune = []rune(str)
  57.  
  58. for i := ; i < len(r)/; i++ {
  59. tmp := r[len(r)-i-]
  60. r[len(r)-i-] = r[i]
  61. r[i] = tmp
  62. }
  63.  
  64. str = string(r)
  65. fmt.Println(str)
  66. }
  67.  
  68. func testHuiWen() {
  69. var str = "上海自来水来自海上"
  70. var r []rune = []rune(str)
  71.  
  72. for i := ; i < len(r)/; i++ {
  73. tmp := r[len(r)-i-]
  74. r[len(r)-i-] = r[i]
  75. r[i] = tmp
  76. }
  77.  
  78. str2 := string(r)
  79. if str2 == str {
  80. fmt.Println(str, " is huiwen")
  81. } else {
  82. fmt.Println(str, " is not huiwen")
  83. }
  84. }
  85.  
  86. func main() {
  87. //testString()
  88. //testReverseStringV2()
  89. testHuiWen()
  90. }

Golang之字符串操作(反转中英文字符串)的更多相关文章

  1. C#入门篇6-8:字符串操作 深入研究字符串的内存驻留机制

    //字符串的内存驻留机制 public static void Test() { //当有多个字符串变量包含了同样的字符串实际值时, //CLR可能不会为它们重复地分配内存,而是让它们统统指向同一个字 ...

  2. add-binary 字符串操作,二进制字符串相加

    Given two binary strings, return their sum (also a binary string). For example,a ="11"b =& ...

  3. C#入门篇6-4:字符串操作 string分割字符串效率比较

    //分割字符串效率比较 public static void Fund() { //1.用string.Split方法 //a.字节数组: //625毫秒/百万次 string str1 = &quo ...

  4. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  5. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  6. SQL字符串操作汇总

    SQL字符串操作汇总 --将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处 select stuff('hello,world!',4,4,'****')   --返回值hel*** ...

  7. Python之字符串操作

    一.字符串特点 内容不可修改 password=' #内容不可修改 二.字符串常用方法 1..strip()方法 去字符串两边的空格和换行符 print(password.strip()) #去掉字符 ...

  8. JS 常用字符串操作

    Js字符串操作函数大全 /*******************************************                        字符串函数扩充              ...

  9. Python中字符串操作

    #Python字符串操作 '''1.复制字符串''' #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' pri ...

随机推荐

  1. Linux 键盘输入#的时候变成£

    /********************************************************************************* * Linux 键盘输入#的时候变 ...

  2. linux 模拟生成 CAN 设备

    /************************************************************************************** * linux 模拟生成 ...

  3. DecimalFormat格式化数字

    DecimalFormat格式化数字 DecimalFormat类也是Format的一个子类,主要作用是格式化数字.当然,在格式化数字时要比直接使用NumberFormat更加 方便,因为可以直接指定 ...

  4. vue使用百度编辑器ueditor踩坑记录

    一.使用 下载放入项目 main.js引入 import '../static/UE/ueditor.config.js'; import '../static/UE/ueditor.all.js'; ...

  5. web本地存储(localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage) 说明 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:l ...

  6. PostgreSQL 9.6 keepalived主从部署

    ## 环境: PostgreSQL版:9.6 角色                     OS                    IPmaster                 CentOS7 ...

  7. 注解反射原理(IOC框架)

    IOC(Inversion of Control):控制反转.采用配置文件和注解的方式,将成员变量通过反射注入,舍弃new的方式,降低了耦合度. 反射:JAVA反射机制是在运行状态中,对于任意一个类, ...

  8. Java 学习思路

    内容中包含 base64string 图片造成字符过多,拒绝显示

  9. jetty之嵌入式开发

    一.Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可 ...

  10. 使用Java配置SpringMVC

    在此之前,一直使用的是XML的方式配置SpringMVC,现在为了适应Servlert3.0以及JavaConfig的Spring配置方式,在这里记录一下使用Java代码配置SpringMVC.首先, ...