首页 > 其他分享 >golang中的substring

golang中的substring

时间:2023-04-08 14:01:12浏览次数:38  
标签:substring java string s1 golang Hello

发现golang strings包中没有java string.substring方法,于是尝试了下: 想要在java中实现提取“世”的需求

//java代码
String s = "Hello, 世界";
System.out.println(s.substring(7, 8)); //世

在golang中尝试这样:

//golang代码
s1 := "Hello, 世界"
fmt.Println(s1[7:8]) //�

因为golang按照utf-8编码,一个汉字可能占用3-4个字节,再次尝试:

//golang代码
s1 := "Hello, 世界"
fmt.Println(s1[7:10]) //世

可以看出”世“字占用了3个字节,也就是3个字节构成了一个有效的utf-8码点,但是实际这样会比较麻烦,所以可以先转换成slice:[]rune,然后用string转换下:

//golang代码
s1 := "Hello, 世界"
runes := []rune(s1)
fmt.Println(string(runes[7:8])) //世

完成!

标签:substring,java,string,s1,golang,Hello
From: https://blog.51cto.com/thinklili/6177561

相关文章

  • 巧如范金,精比琢玉,一分钟高效打造精美详实的Go语言技术简历(Golang1.18)
    转自刘悦研发少闲月,九月人倍忙。又到了一年一度的“金九银十”秋招季,又到了写简历的时节,如果你还在用传统的Word文档寻找模板,然后默默耕耘,显然就有些落后于时代了,本次我们尝试使用云平台flowcv高效打造一份巧如范金、精比琢玉的高品质Golang技术简历。首先来到云平台:flowcv.com......
  • golang TLS方式发送邮件
    packagemailimport( "crypto/tls" "errors" "fmt" "net/smtp" "net/textproto")typeloginAuthstruct{ username,passwordstring}//LoginAuthisfuncLoginAuth(usernamestring,passwordstring)......
  • day7 golang GMP
    大名鼎鼎的GMP模型需要自行学习的知识:进程、线程、协程、多线程、线程池、io多路复用,内核态用户态,,同步阻塞异步非阻塞等等相关知识代码是在线程中运行的,协程也是,所以当协程阻塞的时候该线程也阻塞了,其他任务就无法调度了,该线程就死了。如何解决,那就需要让协程自由的在线程中移......
  • Golang之常用方法[总结]
    1.有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?nums:=[]int{1,5,1,6,5,3,6}i:=0for_,v:=rangenums{i^=v}fmt.Print(i)重点是异或的使用......
  • (转)使用 Golang 创建和读取 Excel 文件
    原文:https://juejin.cn/post/7117578016858849293摘要本文提出一种使用Golang进行Excel文件创建和读取的方案。首先对问题进行分析,引出方案的基本架构;然后分章节描述了Excelize基础库的基本用法,以及Excel数据在Golang中的表示和解析方式,并进一步提出了应对大规模数......
  • 运行 Golang 程序时让程序不会在运行结束后立即关闭命令行窗口
    在运行Golang程序时,为了让程序不会在运行结束后立即关闭命令行窗口,可以采用以下两种方法:使用fmt.Scanln()函数在程序的末尾添加一行fmt.Scanln()可以暂停程序运行,等待用户在命令行中输入任何字符,程序将等待用户输入,然后再继续执行直到程序结束。packagemainimport"fm......
  • golang pprof 监控系列(4) —— goroutine thread 统计原理
    golangpprof监控系列(4)——goroutinethread统计原理大家好,我是蓝胖子。在之前golangpprof监控系列文章里我分别介绍了gotrace以及gopprof工具对memory,block,mutex这些维度的统计原理,今天我们接着来介绍golangpprof工具对于goroutine和thread的统计原理。还记得在......
  • Golang 应用接入 Prometheus 监控
    前言Prometheus提供了官方版Golang库(https://github.com/prometheus/client_golang)用于采集并暴露监控数据,本文快速为你介绍如何使用官方版Golang库来暴露Golangruntime相关的数据,以及其它一些基本简单的示例,并使用Prometheus监控服务来采集指标展示数据。❝有关全面......
  • golang开发需要掌握的核心包以及中间件,涵盖项目的各个领域,值得收藏
    golang开发需要掌握的核心包以及中间件,涵盖项目的各个领域,值得收藏。常用包常用包 说明fmt 实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。io 实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们......
  • Golang基础-Select
    基本概念select是Go中的一个控制结构,类似于switch语句。select语句只能用于通道(channel)操作,每个case必须是一个通道操作,要么是发送要么是接收。select语句会监听所有指定的通道上的操作,一旦其中一个通道准备好就会执行相应的代码块。如果多个通道都准备好,那么sel......