Go语言中文网 为您找到相关结果 325

[GO语言]Golang String字符串的操作大全

字符串是不可变值类型,内部用指针指向 UTF-8 字节数组。 • 默认值是空字符串 ""。 • 用索引号访问某字节,如 s[i]。 • 不能用序号获取字节元素指针,&s[i] 非法。 • 不可变类型,无法修改字节数组。 • 字节数组尾部不包含 NULL。 使用索引号访问字符 (byte)。 package main func main() { s := "abc" println(s[0] == '\x61', s[1] == 'b', s[2] == 0x63) } 输出结果: true true true 使用 " ` " 定义不做转义处理的原始字符串,支持跨行。 package main func main() { s := `a b\r\n\x00 c` println(s) } 输...阅读全文

博文 2020-05-15 17:38:35 小龙in武汉

golang 基础(6)循环

fi3udlyd2x4thzj0ocke.jpg 循环语句 for 的条件里不需要括号 for 的条件里可以省略初始条件,结束条件,递增表达式 我们进行一点小小算法将10进制转为2进制 12 首先对 2 取模 12 对 2 取模为 0 12 -> 0 然后用 12 除以 2 为 6 接下来再用 6 对 2 取模为 0 12 -> 00 然后再用 6 除以 2 为 3 3 再对 2 取模为 1 12 -> 001 3 在除以 2 为 1 1 对 2 取模为 1 12 -> 0011 1 除以 2 为 0 这停止向下进行了 最后将 0011 翻过来就是 12 转为 2 进制的值 func convertToBin(n int) string { result := "" for ; n >0; ...阅读全文

博文 2019-03-16 18:34:42 zidea

go(strings和strconv 常用的方法使用)

1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 。 2. strings.HasSuffix(s string, suffix string) bool:判断字符串s是否以suffix结尾。 3. strings.Index(s string, str string) int:判断str在s中首次出现的位置,如果没有出现,则返回-1 4. strings.LastIndex(s string, str string) int:判断str在s中最后出现的位置,如果没有出现,则返回-1 5. strings.Replace(str string, old string, new string, n int)...阅读全文

博文 2020-04-10 22:32:42 小兵

leetcode_459

Golang: 思路:这题难道就是区别优秀程序员和一般程序员的那种智商题吗?正确思路是:将两个s字符串拼接起来,如果拼接好的字符串去头掐尾,里面还会出现s的话,就可以知道它是重复字符串了。大佬们一行就能解决了,而我。。。 我自己的代码如下(不建议看): func repeatedSubstringPattern(s string) bool { i:=0 for i阅读全文

博文 2020-01-30 21:32:39 淳属虚构

go encoding/json 介绍

由于我一直是一名前端工程师,所以我会在前端的角度将js中的json操作和go中的操作做一个类比方便大家的理解。 将字符串转换为对象 js : JSON.parse(`{"name":"cfl"}`)go : json.Unmarshal jsonStr := `{ "name":"cfl", "age":10, "friend":[{"name":"sx", "age":10 }] }` type User struct { Name string Age int64 Friend []User } var cfl User json.Unmarshal([]byte(jsonStr), &cfl) fmt.Printf("%+v", cfl) 将对象转换为json js: JSON.str...阅读全文

博文 2019-11-17 20:32:42 曹飞龙

golang 学习笔记 1.6 字符串

1.6 字符串 字符串是不可变值类型,内部用指针指向 UTF-8 字节数组。 默认值是空字符串 ""。 用索引号访问某字节,如 s[i]。 不能用序号获取字节元素指针,&s[i] 非法。 不可变类型,无法修改字节数组。 字节数组尾部不包含 NULL。 struct String { byte* str; intgo len; }; 使用索引号访问字符 (byte)。 s := "abc" println(s[0] == '\x61', s[1] == 'b', s[2] == 0x63) //输出: true true true 使用 " ` " 定义不做转义处理的原始字符串,支持跨行。 s := `a b\r\n\x00 c` println(s) // 输出: a b\r\n\x00 c...阅读全文

博文 2019-03-22 05:34:40 Diogoxiang

Golang的数据类型

基本数据类型整型:1.按长度:int8(-128-127)、int16、int32、int642.无符号整型:uint8(0-255)、uint16、uint32、uint64特殊整型:int: 32位操作系统上就是int32,64位操作系统上就是int64uint: 32位操作系统上就是uint32,64位操作系统上就是uint64浮点型:float32 float64复数类型:complex64和complex128布尔类型:bool字符串:stringbyte类型和rune类型byte 和 run...阅读全文

博文 2020-05-13 16:32:54 lghCode

表示数值的字符串

题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"0123"及"-1E-16"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 思路 可以先整理出数字中所有异常的元素,分别为'.','-','+','E',‘e’。 再整理出特殊一些的用例,例如'.3',‘.e3’,'3.14e3',‘3.’等等。 可以将数字分为特殊元素,以及有符号整数和无符号整数的组合。 有符号数之后,必须为无符号数,例如‘-+3’是不合法的 小数点之后,必须为无符号整数,例如'3.-5'是不合法的 'e'或者‘E’之后,必须为整数,例如'3E-3.5'是不合法的 可以定义一个指针,...阅读全文

博文 2020-03-14 21:32:46 youzhihua

左旋转字符串

题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 思路 1.这道题可以在n的索引位置做分割,将分割所得的前半部分与后半部分反向拼接即可。 Java代码实现 class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n)+s.substring(0,n); } } Golang代码实现 func reverseLeftWords(s string, n int) string { frontStr := s[n:] be...阅读全文

博文 2020-03-04 10:32:56 youzhihua

golang之Json

1. json字符串解析: json.Unmarshal(b, &f) json字符串解析到结构体中: package main import ( "encoding/json" "fmt" ) type Server struct { ServerName string ServerIP string } type Serverslice struct { Servers []Server } func main() { var s Serverslice str := `{"servers":[{"serverName":"Shanghai_VPN","serverIP":"127.0.0.1"},{"serverName":"Beijing_VPN","serverIP":"127.0...阅读全文

博文 2019-10-14 20:33:34 aside section ._1OhGeD

【Golang语言】LeetCode 1002. Find Common Characters

Given an array A of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates). For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer. 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字...阅读全文

博文 2019-08-25 00:33:27 努力的C

Go语言的strings包字符串处理二之字符串操作函数

Containsfunc Contains(s, substr string) bool功能:字符串s中是否包含substr,返回bool值 示例代码: fmt.Println(strings.Contains("seafood", "foo")) fmt.Println(strings.Contains("seafood", "bar")) fmt.Println(strings.Contains("seafood", "")) fmt.Println(strings.Contains("", "")) //运行结果: //true //false //true //true Joinfunc Join(a []string, sep string) string功能:字符串链接,把sli...阅读全文

博文 2018-10-06 17:35:09 ck_god

Go语言学习(二):字符串

在Go中字符串作为内建类型,和C语言是不一样的。C中没有字符串类型, 所有需要通过字符数组来表示字符串,并以指针来传递。在Go中字符串是一个定长字符数组,所以当其创建之后就无法直接改变了。1、错误的字符串长度的获取: 从字符串字面值看len(s)的结果应该是7,但在Golang中string类型的底层是通过byte数组实现的,在unicode编码中,中文字符占两个字节,而在utf-8编码中,中文字符占三个字节而Golang的默认编码正是utf-8.2、正确的字符串长度获取: 那么问题来了,rune[ ]是个啥?有时需要将一个类型转换为另一个类型。在 Go 中可以做到,不过有一些规则。首先,将一个值转换为另一个是由操作符(看起来像函数:byte())完成的,并且不是所有的转换都是允许的。Go语...阅读全文

博文 2020-02-20 19:32:49 算命的Chalk

leetcode_13

Golang: 思路: 首先,用一个map来存储字母和对应的数值,然后依次读取字符串里的字符,然后去map里寻值。根据规则,我们在对s的第i位取值时需要考虑第i+1位的情况 func romanToInt(s string) int{ res:=0 r2i:= map[byte]int{'I': 1, 'V': 5,'X':10,'L':50,'C':100,'D':500,'M':1000} for i:=0; i阅读全文

博文 2020-01-21 17:32:40 淳属虚构

leetcode_599

Golang: 思路:用了两个map,时间复杂度还行,但空间复杂度可太高了,第一个map存放长度更长的列表,第二个map去存储索引最小的字符串集合。代码还是有些复杂的,而且空间复杂度太低了,不推荐。 代码如下: func findRestaurant(list1 []string, list2 []string) []string { if len(list1)==0||len(list2)==0{ return nil } minsum:=-1 dic:=make(map[string]int) minress:=make(map[int][]string) var longl,shortl []string if len(list1)>len(list2) { longl,shortl=...阅读全文

博文 2020-02-11 16:33:04 淳属虚构

leetcode_1221

Golang: 思路:这题题意有点问题,输入也不是平衡字符串,对输出也有要求。简单来说,定义一个sum=0,从0开始往下走,找到一个平衡字符串,sum+1。然后从剩下的字符串里继续走,直到找完整个字符串为止。 代码如下: func balancedStringSplit(s string) int { i:=0 count:=0 sum:=0 for i<=len(s)-1{ if s[i]=='L'{ sum++ }else{ sum-- } if sum==0 { count++ } i++ } return count ...阅读全文

博文 2020-02-14 00:32:56 淳属虚构

leetcode_7

Golang: 思路: 将给的数字转换为字符串,再对字符串做反转处理,再将它变回字符串 见leetcode_9中的做法(更加简洁) 注意:这里要注意反转后的数字超过int的最大值而出现溢出,但go好像不需要注意这个 func reverse(x int) int { s:=strconv.Itoa(x) sBytes:=[]byte(s) var i int j:=len(sBytes)-1 if sBytes[0]=='-' { i=1 } for ;i2147483647||res<(-...阅读全文

博文 2020-01-11 06:32:50 淳属虚构

[Go - Basic] 基本变量类型转换

数字转字符串 import "strconv" int -> string strconv.Itoa(i int) string int64 -> string strconv.FormatInt(i int64, base int) string base = 10 字符串转数字 import "strconv" string -> int strconv.Atoi(s string) (int, error) string -> int64 strconv.ParseInt(s string, base int, bitSize int) (i int64, err error) base = 10 bitSize = 6...阅读全文

leetcode_541

Golang: 思路:暴力算法 代码如下: func reverseStr(s string, k int) string { if len(s)<=1 { return s } bytes := []byte(s) reverseBytes(bytes,0,k) return string(bytes) } func reverseBytes(arr []byte,i int,k int) { j:=k-1+i //剩余字符串小于k if j>len(arr)-1 { j=len(arr)-1 swapBytes(arr,i,j) return } //剩余字符串大于k小于等于2k if j+k>=len(arr)-1 { swapBytes(arr,i,j) return }else {...阅读全文

博文 2020-02-01 03:32:56 淳属虚构

leetcode_409

Golang: 思路:这题就是套了个回文串的壳子,实际上呢,就是找到字符串里所有成对字母的数量,然后,如果有落单的,这个数目就加1。 实现:我用了个长度为52的数组存储所有单词的数目,然后统一处理,求出上文提到的数目。 代码如下: func longestPalindrome(s string) int { if len(s)<=1 { return len(s) } temp:=make([]int,52) for _,v:=range s{ if v>=97 { temp[v-97]++ }else{ temp[v-39]++ } } f,sum:=0,0 for i:=0; i< len(temp); i++ { sum=sum+temp[i] if f==0 { if temp[i]...阅读全文

博文 2020-01-30 21:32:47 淳属虚构

leetcode_49

Golang: 思路:对所有字符串处理(排序),字母异位词必然会有同一排列。 代码如下: type Bytes []byte func (b Bytes) Len() int { return len(b) } func (b Bytes) Less(i, j int) bool { return b[i] < b[j] } func (b Bytes) Swap(i, j int) { b[i], b[j] = b[j], b[i] } func groupAnagrams(strs []string) [][]string { mp:=make(map[string][]string) for _,v:=range strs{ bytes:=[]byte(v) sort.Sort(Byt...阅读全文

博文 2020-03-19 15:33:55 淳属虚构

leetcode_811

Golang: 思路:这题是字符串处理吧,没啥好说的,但是这里我的代码需要精简一下,Count函数那里,有多余的时间复杂度。 代码如下: func subdomainVisits(cpdomains []string) []string { mp:=make(map[string]int) for _,v:=range cpdomains{ flds:=strings.Fields(v) count,_:=strconv.Atoi(flds[0]) mp[flds[1]]+=count temp:=flds[1] for strings.Count(temp,".")>0 { temp=temp[strings.Index(temp,".")+1:] mp[temp]+=count } } ...阅读全文

博文 2020-02-27 07:32:39 淳属虚构

leetcode_68

Golang: 思路:刚开始看题会觉得有些麻烦,但实际上,也没啥技巧,就是处理字符串 代码如下: func fullJustify(words []string, maxWidth int) []string { var wordlist []string var res []string j,length:=0,0 for jmaxWidth{ //结束,处理wordlist handleWordList(wordlist...阅读全文

博文 2020-03-23 19:32:47 淳属虚构

leetcode_819

Golang: 思路:这题的难点也在字符串的处理,但大部分的语言都提供类似的函数了,如果我们想提取字符串里的所有单词,使用正则是很好的途径,自己去分割字符串,处理标点符号,反而没什么意思。 代码如下: func mostCommonWord(paragraph string, banned []string) string { reg:=regexp.MustCompile("\\w+") mp1,mp2:=make(map[string]int),make(map[string]int) for _,v:=range banned{ mp1[v]=1 } if reg!=nil { strs:=reg.FindAllString(paragraph,-1) for _,v:=range s...阅读全文

博文 2020-02-27 09:32:41 淳属虚构

leetcode_1002

Golang: 思路:每个字符串进行比较即可 代码如下: func commonChars(A []string) []string { arr1:=make([]int,26) for k,w:=range A{ arr2:=make([]int,26) for _,b:=range w{ arr2[b-'a']++ } if k==0{ copy(arr1,arr2) }else{ for k,_:=range arr1{ arr1[k]=min(arr1[k],arr2[k]) } } } var res []string for k,v:=range arr1{ for i:=0;i阅读全文

博文 2020-04-15 09:32:45 淳属虚构