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

Golang中获取中文字符串的子串字符位置及截取子串

昨天准备用golang做一个简单的文本分析,需要简单的对字符串进行一些操作,在查看了strings和strconv库时,我没找到截取字符串的函数,同时strings.Index返回的是子串的字节位置,例如这个例子:strings.Index("早上好,张先生!","好") 的返回值是6,而不是2(从0开始算)。 于是我自己写了一个处理中文的返回字符串子串位置的函数,思想其实很简单,首先通过strings库中的Index函数获得子串的字节位置,再通过这个位置获得子串之前的字节数组pre,再将pre转换成[]rune,获得[]rune的长度,便是子串之前字符串的长度,也就是子串在字符串中的字符位置,具体代码如下: func UnicodeIndex(str,substr string) int ...阅读全文

博文 2014-10-10 11:00:01 wowzai

golang -- 字符串操作

相关包有strings, strconv 判断是否以某字符串打头/结尾 strings.HasPrefix(s string, prefix string) bool => 对应python的str.startswith strings.HasSuffix(s string, suffix string) bool => 对应python的str.endswith 字符串分割 strings.Split(s string, sep string) []string => 对应python的str.split 返回子串索引 strings.Index(s string, sub string) int => 对应python的str.index strings.LastIndex 最后一个匹配...阅读全文

博文 2014-10-04 19:27:02 flyking

go语言rune法substring出错问题

网上一个substring的方法: func SubString(str string,begin,length int) (substr string) { // 将字符串的转换成[]rune rs := []rune(str) lth := len(rs) // 简单的越界判断 if begin < 0 { begin = 0 } if begin >= lth { begin = lth } end := begin + length if end > lth { end = lth } // 返回子串 return string(rs[begin:end]) }本人应用的时候发现,多次截取字符串时出现截取失败问题,后来仔细读了一些他的代码,发现有rune,修改了一些rune去掉之后就...阅读全文

博文 2015-06-17 23:07:20 u010499721

GO语言中的字符串的常见操作(strings包)

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

博文 2019-05-15 18:35:26 qq5c9c828bc8d4b

算法基础:最大递减数问题(Golang实现)

给出一个非负整数,找到这个非负整数中包括的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。 如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。 假设输入的数字为负数,返回-1。 假设找不到递减数,也返回-1. 代码实现: package huawei import ( "fmt" "sort" "strconv" ) func Test5Base() { num := 431492 degressiveNums := getDegressiveNums(num) max := -1 if len(degressiveNums) > 0 { max = getMax(degressiveNums) } fmt.Println("...阅读全文

博文 2016-03-25 01:00:05 mengfanrong

golang和python有关字符串操作的对应方法

golang和python有关字符串操作的对应方法 (来自:flyking) 相关包有strings, strconv 判断是否以某字符串打头/结尾 strings.HasPrefix(s string, prefix string) bool => 对应python的str.startswith strings.HasSuffix(s string, suffix string) bool => 对应python的str.endswith 字符串分割 strings.Split(s string, sep string) []string => 对应python的str.split 返回子串索引 strings.Index(s string, sub string) int => 对应py...阅读全文

博文 2015-12-30 16:00:23 magicbreaker

golang strings包

001 package main 002 003 import ( 004 "fmt" 005 "strings" 006 //"unicode/utf8" 007 ) 008 009 func main() { 010 fmt.Println("查找子串是否在指定的字符串中") 011 fmt.Println(" Contains 函数的用法") 012 fmt.Println(strings.Contains("seafood", "foo")) //true 013 fmt.Println(strings.Contains("seafood", "bar")) //false 014 fmt.Println(strings.Contains("seafood", "")) //true...阅读全文

博文 2015-06-17 20:04:03 zb_liang

golang 压缩原apk文件夹 安装不了 但是用其他压缩软件压缩后能安装?求解决我想golang批量打包apk

package main import ( "archive/zip" "errors" "fmt" "io" "os" "path/filepath" "strings" ) func SubString(str string, begin, length int) (substr string) { // 将字符串的转换成[]rune rs := []rune(str) lth := len(rs) // 简单的越界判断 if begin < 0 { begin = 0 } if begin >= lth { begin = lth } end := begin + length if en...阅读全文

子串查找算法-Rabin-Karp

好久没学习东西了, 前段时间有点过于放纵, 天天打游戏, 现在需要写点东西来减轻罪恶感. 对Rabin-Karp早有耳闻, 它可以在Golang官方库中找到, 当初粗略看了下觉得有点复杂就没仔细研究, 现在就看看它吧. 什么是Rabin-Karp算法 Rabin-Karp算法用来解决一个"简单"的问题: 在一个字符串中定位子串的位置. 同样的算法还有: KMP, BM. 关于他两可以再看看这位老哥写的文章:白话分析字符串匹配算法——KMP算法 乍一看这个问题一个for循环就能搞定, 但Rabin-Karp这个神奇的算法能让问题解决得更高效 有趣. 在了解Rabin-Karp之前,我们需要了解for暴力算法的缺点。 暴力算法的缺点 首先从头部开始匹配,如果没匹配到则向后移动一步再次匹配,如此循...阅读全文

博文 2018-11-13 00:34:39 bysir

go字符串处理

func SubString(str string, begin, length int) string { // 将字符串的转换成[]rune rs := []rune(str) lth := len(rs) // 简单的越界判断 if begin < 0 { begin = 0 } if begin >= lth { begin = lth } end := begin + length if end > lth { end = lth } // 返回子串 return string(rs[begin:end]) } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text(...阅读全文

博文 2016-04-16 16:00:01 LeoHsiun

Golang包——strings

包含关系 // 子串substr在s中,返回true func Contains(s, substr string) bool // chars中任何一个Unicode代码点在s中,返回true func ContainsAny(s, chars string) bool // Unicode代码点r在s中,返回true func ContainsRune(s string, r rune) bool 字符串转换 下面行为会出现数据越界,但是会返回最大值127 func TestStrConInt(t *testing.T) { n, err := strconv.ParseInt("128", 10, 8) if err != nil { t.Log(err) } t.Log(n) } s...阅读全文

博文 2019-04-02 20:34:41 羊羽share

LeetCode-5-最长回文子串

题目描述 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 思路 如果把一个字符串反转,反转后的字符串与原来相同,则该字符串是回文串 使用暴力法,搜索上做了一些优化 Code Golang func longestPalindrome(s string) string { if IsPalindrome([]byte(s)) { return s } max := "" l := len(s) cs := []byte(s) for i:=0;i阅读全文

博文 2019-07-12 00:02:45 monigo

LeetCode - 无重复字符的最长子串 - Golang

题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 `"abc",所以其`长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 `"b"`,所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 `"wke"`,所以其长度为 3。 请注意,你的答案必须是 **子串** 的长度,`"pwke"` 是一个_子序列,_不是子串。 基于Golang的代码实现如下: func lengthOfLongestSubstring(s string) int { // 获取字符串长度 l := len(s) ...阅读全文

博文 2020-02-12 20:32:41 邹友

2019-08-22【LeekCode题库problem-3】

GitHub 地址:coffeeTu-code LeekCode 地址:题库 Language:Golang /* @题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 @示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 @示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 @示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 @题目大意 在一个字符串重寻找没有重复字母的最长子串。 @解题思路 滑动窗...阅读全文

博文 2019-08-23 04:32:48 CoffeeRabbit

map实现最长子串长度

package mainimport "fmt"func lengthOfNonRepeatingSubstr(s string) int{ //int 保存最后出现位置 lastOccurred := make(map[byte]int) start:=0 maxLength:=0 for i,ch :=range []byte(s){ lastI,ok:=lastOccurred[ch] if ok && lastI >= start{ start = lastI + 1 } if i - start + 1 > maxLength { maxLength = i-start + 1 } //初始化map lastOccurred[ch] = i } return maxLength}f...阅读全文

博文 2018-08-26 21:50:26 zhangyangbest

Golang之strings包

只列举了部分函数方法的使用: 太多了。。。。。。。 package main import ( "fmt" "strings" ) func main() { Count计算 sep在s中的非重叠个数 func Count(s, substr string) int { s := "Hello,超哥" 统计 l 出现的次数 n := strings.Count(s, "l") fmt.Println(n) //2 如果substr 为空,返回s中字符个数+1 n=strings.Count(s,"") fmt.Println(n) Contains判断 字符串 s中 是否包含 子串 substr func Contains(s, substr string) bool { substr什么都...阅读全文

博文 2017-12-21 09:00:01 pyyu

golang——(strings包)常用字符串操作函数

1)func HasPrefix(s, prefix string) bool判断字符串s是否有前缀字符串prefix;(2)func HasSuffix(s, suffix string) bool判断字符串s是否有后缀字符串suffix;(3)func Contains(s, substr string) bool判断字符串s是否包含子串substr;(4)func Count(s, sep string) int返回字符串s有几个不重复sep子串;(5)func Index(s, sep string) int返回字符串s中子串sep第一次出现的位置;不存在返回-1;(6)func ToLower(s string) string返回字符串s转小写的拷贝;(7)func ToUpper...阅读全文

博文 2019-08-27 17:32:52 灰侠_bf44

无重复字符的最长子串

这道题难度中等: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 解题思路: 设置start标志位和index标志位,index从前往后依次遍历 每次出现的字母,都缓存其最后一次出现的索引 如果index指向的字母的lastLndex在start前面,...阅读全文

博文 2019-06-16 20:32:42 杨比轩

golang刷LeetCode[0005] 最长回文子串

题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假定 s 的最大长度为1000. 示例1: 输入: babad 输出:bab 注意:aba也是有效答案 示例2: 输入:cbbd 输出:bb 题解 1、暴力法 func longestPalindrome(s string) string { var maxLen int var maxStr string for i := 0; i < len(s); i++ { for j := i + 1; j < len(s)+1; j++ { len := isPalindrome(s[i:j]) if len > maxLen { maxStr = s[i:j] maxLen = len } } } return maxStr } fu...阅读全文

博文 2020-01-15 09:32:44 风云风雨

LeetCode - 字符串排列 - Golang

题目:给定两个字符串 s1 和 s2,写一个函数来判断s2是否包含s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。 Golang代码实现尝试如下:示例1: 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 示例2: 输入: s1= "ab" s2 = "eidboaoo" 输出: False 基于Golang的代码实现如下: if s1 == "" { return true } // s1的长度大于s2时,必定不是子串 l1, l2 := len(s1), len(s2) if l1 > l2 { return false } // 获取s1每个字母的频率 arr1 := [26]int{...阅读全文

博文 2020-02-12 23:32:43 邹友

golang刷LeetCode[0003] 无重复字符的最长子串

题目 https://github.com/betterfor/leetcode-go/tree/master/algorithms/0003_Longest_String 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 题解 暴力法 简单来说就是列出...阅读全文

博文 2020-01-15 09:32:46 风云风雨

面试经典算法:马拉松算法,最长回文子串Golang实现

求一个字符串中最长的回文子串。 a11.png package main import "fmt" /* 马拉松算法,求最长回文子串,时间复杂度:线性 */ func main() { // 回文数 str := "abcddcbadcbadcabdadacd" // 填充#变成奇数个元素 strArray := make([]byte, 0, 2*len(str)+1) // 每个字符是一个byte for i := 0; i < len(str); i++ { strArray = append(strArray, str[i]) strArray = append(strArray, '#') } fmt.Print("原始字符串:") for i := 0; i < len(strA...阅读全文

博文 2019-10-28 11:32:48 aside section._1OhGeD

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 小兵

Golang字符串

3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 func lengthOfLongestSubstring(s string) int { m := map[byte]int {} res := 0 for i, j := ...阅读全文

博文 2020-05-04 19:32:45 DoneIsBetter

让我们一起啃算法----无重复字符的最长子串

无重复字符的最长子串 这是 LeetCode 第三题,题干如下: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。来源:力扣 解题思路 常规思路:两层循环字符串,并且我们需要一个 Map字典 来标记哪些字符已经出现过,流程如下: GO语言的代码实现: func ...阅读全文

博文 2020-04-23 12:32:46 三斤和他的朋友们