strings方法

index

判断子字符串或字符在父字符串中出现的位置(索引)
Index 返回字符串 str 在字符串 s 中的索引( str 的第一个字符的索引),-1 表示字符串 s 不包含
字符串 str :
strings.Index(s, str string) int

LastIndex

返回字符串 str 在字符串 s 中最后出现位置的索引( str 的第一个字符的索引),-1 表示
字符串 s 不包含字符串 str :
strings.LastIndex(s, str string) int

IndexRune
如果 ch 是非 ASCII 编码的字符,建议使用以下函数来对字符进行定位:
strings.IndexRune(s string, ch int) int

  1. func test12(){
  2. var str string = "学习,就是知已不足,寻找改变的方法,尝试尝试再尝试,并以此为乐...这就是学习"
  3. fmt.Printf("The position of \"方法\" is: ")
  4. fmt.Printf("%d\n", strings.Index(str, "方法"))
  5. fmt.Printf("The position of the first instance of \"学习\" is: ")
  6. fmt.Printf("%d\n", strings.Index(str, "学习"))
  7. fmt.Printf("The position of the last instance of \"学习\" is: ")
  8. fmt.Printf("%d\n", strings.LastIndex(str, "学习"))
  9. fmt.Printf("The position of \"哪怕改变再小\" is: ")
  10. fmt.Printf("%d\n", strings.Index(str, "哪怕改变再小"))
  11. }

输出

  1. The position of "方法" is: 45
  2. The position of the first instance of "学习" is: 0
  3. The position of the last instance of "学习" is: 105
  4. The position of "哪怕改变再小" is: -1

字节与字符串转换

  1. /**
  2. func (this *Server) socketParserHandler(client *genTcpServer.Client, fullData []byte) {
  3.  
  4. fmt.Println("original data is", client)
  5. strPointerHex := fmt.Sprintf("%p", unsafe.Pointer(client))
  6. fmt.Println("connection is", strPointerHex)
  7.  
  8. strPointerInt := fmt.Sprintf("%d", unsafe.Pointer(client))
  9. fmt.Println("connection is", strPointerInt)
  10.  
  11. i, _ := strconv.ParseInt(strPointerInt, 10, 0)
  12.  
  13. var pointer *genTcpServer.Client
  14. pointer = *(**genTcpServer.Client)(unsafe.Pointer(&i))
  15. fmt.Println("connection pointer is", pointer)
  16.  
  17. debugMsg := fmt.Sprintf("%p", unsafe.Pointer(pointer))
  18. fmt.Println("debugMsg is", debugMsg)
  19. */
  20. func unsafeTest() {
  21. ss := "工工在aaa"
  22. s1 := []byte(ss)
  23. a := unsafe.Pointer(&s1) //0xc0000a6ee0 取针指指向的地址,不限定类型
  24. fmt.Println(a)
  25.  
  26. bb := (*string)(a) //0xc0000a6ee0 取字节数组的开始地址,确定地址存储的类型是字符串
  27. b := fmt.Sprintf("%v",bb)
  28. fmt.Println(b)
  29. s2 := *bb
  30. fmt.Println(s2) //工工在aaa
  31.  
  32. }
  33.  
  34. func testByte() {
  35. ss := "工工在aaa"
  36. s1 := []byte(ss)
  37. mm := fmt.Sprintf("%v",s1)
  38. fmt.Println(mm)
  39.  
  40. ss = ByteArrayToStr(mm)
  41. fmt.Println(ss)
  42. }
  43.  
  44. //字符串转字节数据-->fmt.Sprintf("%v",s1) 格式化为字符串后-->转回原来的字符串
  45. func ByteArrayToStr(byteStr string) string{
  46. byteStr = strings.TrimLeft(byteStr,"[")
  47. byteStr = strings.TrimRight(byteStr,"]")
  48. b := strings.Split(byteStr," ")
  49. var bn = make([]byte,0)
  50. for _,v := range b {
  51. i,_ := strconv.Atoi(v)
  52. c := byte(i)
  53. bn = append(bn,c)
  54. }
  55. return string(bn)
  56. }

3.3 GO字符串处理的更多相关文章

  1. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  2. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  3. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  4. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  5. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  6. Redis的简单动态字符串实现

    Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,sds)的抽象类 ...

  7. ASP.NET加密和解密数据库连接字符串

    大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...

  8. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  9. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  10. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

随机推荐

  1. Invalid prop: type check failed for prop "xxx". Expected Number, got String.

    在子组件progress-circle.vue的template中的定义如下: <svg :width="radius" :height="radius" ...

  2. 2021 祥云杯 wp

    52 web ezyii https://pan.baidu.com/s/1j7IJm9xiea5FvBhPMkPNoQ 提取码GAME <?php include("closure/ ...

  3. Spring Ioc 容器初始化过程

    IOC 是如何工作的? 通过 ApplicationContext 创建 Spring 容器,容器读取配置文件 "/beans.xml" 并管理定义的 Bean 实例对象.   通 ...

  4. Unable to unwrap data, invalid status [CLOSED]-服务端webSocket报错

    一.问题由来 现在的项目中在使用webSocket这门技术,主要用来在服务端和客户端进行实时的数据传输,因为需要及时的进行响应,所以才没有使用http请求的方式, 而是使用socket的方式,这样可以 ...

  5. FastJson测试用例

    基础测试 package com.ai; import com.ai.test.daily.Student; import com.alibaba.fastjson.JSON; import com. ...

  6. 新玩法-使用AllArgsConstructor+filal代替autowired

    和下面的代码一样: Springboot官方建议使用final来修饰成员变量,然后通过构造方法来进行注入原因:final修饰的成员变量是不能够被修改的,反射那就没办法了 还有一种写法: @Requir ...

  7. springboot配置自动提示插件-IDEA

    社区版的IDEA编辑spring boot项目的properties或者yml文件不会自动提醒.可手动安装IDEA的插件解决. Setting >> Plugins >> 搜索 ...

  8. Java设计模式之(十一)——享元模式

    1.什么是享元模式? Use sharing to support large numbers of fine-grained objects efficiently. 享元模式(Flyweight ...

  9. c语言指针学习笔记

    指针变量就是存放内存地址的变量.c语言中使用 int *pa; 的方式来定义指针. ` main() int a = 10, b=20, s, t, *pa, *pb,*pc,*pd; pa = &a ...

  10. Atcoder Regular Contest 061 D - Card Game for Three(组合数学)

    洛谷题面传送门 & Atcoder 题面传送门 首先考虑合法的排列长什么样,我们考虑将每次操作者的编号记录下来形成一个序列(第一次 A 操作不计入序列),那么显然这个序列中必须恰好含有 \(n ...