Go开发之路 -- strings以及strconv的使用
strings的使用
HasPrefix
语法: strings.HasPrefix(s, prefix string) bool // 判断字符串s是否以prefix开头
// 判断一个url是否以http://开头,如果不是,则加上http:// package main import (
"fmt"
"strings"
) func urlProcess(url string) string {
res := strings.HasPrefix(url, "http://")
if !res {
url = "http://" + url
}
return url
} func main() {
var str string
fmt.Scanf("%s\n", &str)
res := urlProcess(str)
fmt.Println(res)
}
练习 1
HasSuffix
语法:
strings.HasSuffix(s, suffix string) bool // 判断字符串s是否以suffix结尾
// 判断一个路径是否以 / 结尾, 如果不是, 则加上 / .
package main import (
"fmt"
"strings"
) func pathPrecess(path string) string { res := strings.HasSuffix(path, "/")
if !res {
path += "/"
}
return path
} func main(){
var path string
fmt.Scanf("%s", &path)
res := pathPrecess(path)
fmt.Println(res)
}
练习 2
Index
语法:
strings.Index(s, str string) int // 判断str在s中首次出现的位置, 如果没有, 则返回-1
LastIndex
语法:
strings.LastIndex(s, str string) int // 判断str在s中最后一次出现的位置, 如果没有,则返回-1
// 写一个函数返回一个字符串在另一个字符串的首次出现和最后出现位置 package main import (
"fmt"
"strings"
) func main(){
s := "qwerrewq"
str := "w"
res := strings.Index(s, str)
lastRes := strings.LastIndex(s, str)
fmt.Println(res, lastRes)
}
练习 3
Replace
语法:
strings.Replace(s, old, new string, n int) string // 字符串替换
Count
语法:
strings.Count(s, substr string) int // 字符串计数
Repeat
语法:
strings.Repeat(s string, count int) string // 重复 count 次 s
ToLower
语法:
strings.ToLower(s string) string // 全部转为小写
ToUpper
语法:
strings.ToUpper(s string) string // 全部转为大写
// 写一个函数分别演示Replace Count Repeat ToLower ToUpper的用法 package main import (
"fmt"
"strings"
) func main() {
var str string fmt.Scanf("%s", &str) newReplace := strings.Replace(str, "he", "plm", )
newCount := strings.Count(str, "he")
newRepeat := strings.Repeat("okn", )
newToLower := strings.ToLower(str)
newToUpper := strings.ToUpper(str) fmt.Println(newReplace, newCount, newRepeat, newToLower, newToUpper)
}
练习 4
TrimSpace
语法:
strings.TrimSpace(s string) string // 去掉字符串s的首尾空白字符
Trim
语法:
strings.Trim(s string, cutset string) string // 去掉字符串s的首尾指定的cutset字符
TrimLeft
语法:
strings.TrimLeft(s string, cutset string) string // 去掉字符串s的首部指定的cutset字符
TrimRight
语法:
strings.TrimRight(s string, cutset string) string // 去掉字符串s的尾部指定的cutset字符
Fields
语法:
strings.Fields(s string) []string // 返回以 空格 分隔的所有子串slice
Split
语法:
strings.Split(s, sep string) []string // 返回以 sep 分隔的所有子串slice
Join
语法:
strings.Join(a []string, sep string) string // 用sep把a中的所有元素链接起来
// 写一个函数分别演示TrimSpace Trim TrimLeft TrimRight Fields Split Join 的用法 package main import (
"fmt"
"strings"
) func main(){
var str string fmt.Scanf("%s", &str) resTrimSpace := strings.TrimSpace(str)
resTrim := strings.Trim(str, "ab")
resTrimLeft := strings.TrimLeft(str, "ab")
resTrimRight := strings.TrimRight(str, "ab")
resFields := strings.Fields(str)
resSplit := strings.Split(str, "a")
resJoin := strings.Join(resSplit, "a") fmt.Println("TrimSpace: ", resTrimSpace, "\n", "Trim:", resTrim, "\n", "TrimLeft: ", resTrimLeft,"\n", "TrimRight: ", resTrimRight, "\n", "Fields: ", resFields, "\n", "Split: ", resSplit, "\n", "Join:", resJoin) }
练习 5
strconv的使用
Itoa
语法:
strconv.Itoa(i int) string // 把一个整数 i 转成一个字符串
Atoi
语法:
strconv.Atoi(s string) (int, error) // 把一个字符串转成一个整数, 如果不能转, 则报错信息保留在error中, int为0
// 写一个函数分别演示Itoa Atoi的用法 package main import (
"fmt"
"strconv"
) func main() {
i :=
s1 := ""
s2 := "m"
res1 := strconv.Itoa(i) fmt.Println(res1) res2, err2 := strconv.Atoi(s1)
res3, err3 := strconv.Atoi(s2)
if err2 != nil {
fmt.Println(s1, " 不能转成整数")
}else {
fmt.Println(res2)
}
if err3 != nil {
fmt.Println(s2, " 不能转成整数")
}else {
fmt.Println(res3)
}
}
练习 6
Go开发之路 -- strings以及strconv的使用的更多相关文章
- 基于CkEditor实现.net在线开发之路(7)列表页面开发动作介绍
一个列表页面不止是查询,它也包含了很多业务上功能的实现,这些业务功能的实现的逻辑我称之为动作.如触发单击按钮删除数据,更改业务表数据,调用webService,调用WCF接口,弹出新窗体新增.修改.查 ...
- 饿了么基于Vue2.0的通用组件开发之路(分享会记录)
Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...
- 基于CkEditor实现.net在线开发之路(1)
我以前的公司使用office sharepoint designer为界面设计器,嵌套各种自定义控件,进行各种管理软件,工作流的开发,遇到比较复杂的逻辑,则采用本地写类库,生成DLL上传到服务器,通过 ...
- WEB开发之路——基础部分
WEB开发之路 受BBC的<BBC: Brain Story>和<BBC: The Brain - A Secret History>的影响,我一直有志于探究人类大脑,2015 ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- 前端基于react,后端基于.net core2.0的开发之路(1) 介绍
文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数 ...
- 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化
前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Do ...
- 小强的HTML5移动开发之路(18)——HTML5地理定位
来自:http://blog.csdn.net/dawanganban/article/details/18192091 在前面的<小强的HTML5移动开发之路(2)--HTML5的新特性> ...
- 小强的HTML5移动开发之路(14)——Video标签详解
来自:http://blog.csdn.net/dawanganban/article/details/18180605 在前面的小强的HTML5移动开发之路(5)--制作一个漂亮的视频播放器中制作了 ...
随机推荐
- 【ZCTF】easy reverse 详解
0x01 前言 团队逆向牛的解题思路,分享出来~ 0x02 内容 0. 样本 bbcdd1f7-9983-4bf4-9fde-7f77a6b947b4.dll 1. 静态分析 使用IDAP ...
- Java中最常用的集合类框架之 HashMap
一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构. HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...
- Javascript高级编程学习笔记(19)—— 对象属性
面向对象的语言有一个标志,那就是语言中都有类的概念 前面的文章中我提到过ECMAScript中没有类的概念(ES6之前) 所以JS中的对象和其他语言中的对象存在着一些区别 ECMA中对对象的定义如下: ...
- dpkg: 处理软件包 qjackctl (--configure)时出错解决方法
第一步:备份 $ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk 第二步:新建 $ sudo mkdir /var/lib/dpkg/info 第三步 ...
- 初识KNN
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...
- Linux的用户管理(基础篇)
用户相关 临时切换用户: su 用户名 完全切换用户: su – 用户名 查看当前登入的用户名: whoami 查看当前用户下的一切环境变量: env 登出当前登入的用户: logout 查看系统的用 ...
- spark面试总结3
Spark core面试篇03 1.Spark使用parquet文件存储格式能带来哪些好处? 1) 如果说HDFS 是大数据时代分布式文件系统首选标准,那么parquet则是整个大数据时代文件存储格式 ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- SpringBoot2.1整合finereport10(帆软报表)
最近,公司采购了帆软的系统,领导安排要与公司的SpringBoot框架进行整合.费了一番牛劲,终于整合成功,下面分享一下我的经验. 首先,我的开发环境是Intellij IDEA,使用的SpringB ...
- Linux 下 Shell 的自动交互
在编写脚本的时候经常会遇到这种情况,某些程序的命令执行的之后可能会要求用户进行输入,这个时候就需要一些特殊写法来应对这种问题了.这里参考 这篇文章提到可以使用 delimiter 分界符来解决. 也就 ...