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)--制作一个漂亮的视频播放器中制作了 ...
随机推荐
- 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- 简单读!spring-mvc源码之url的暴露之路
spring中,注册controller的url有多种方式: 1. 你可以啥都不都干,直接使用 @RequestMapping 注解上体路径,然后加上 <component-scan>, ...
- TX-LCN分布式事务Demo实战
1. TX-LCN分布式事务Demo实战 1.1. 原理介绍 1.1.1. 事务控制原理 TX-LCN由两大模块组成, TxClient.TxManager,TxClient作为模块的依赖框架,提供T ...
- SpringBoot开源项目(企业信息化基础平台)
JEEPlatform 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公自动化).SCM(供应链系统).ERP(企业资源管理系统).CMS(内容管理系统).CRM(客户关 ...
- Spring详解(六)------AspectJ 实现AOP
上一篇博客我们引出了 AOP 的概念,以及 AOP 的具体实现方式.但是为什么要这样实现?以及提出的切入点表达式到底该怎么理解? 这篇博客我们通过对 AspectJ 框架的介绍来详细了解. 1.什么是 ...
- 性能瓶颈之System
如果Source,Target,Mapping和Session都不存在性能上的瓶颈,则问题可能会出在System 因为Integration Service运行时,它使用了System的资源去运行组件 ...
- 来,带你鸟瞰 Java 中4款常用的并发框架!
1. 为什么要写这篇文章 几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库. 但是,当深入实现细节时,我们想起了一位智者曾经说过 ...
- 翻译:SockJS-node文档(一)
什么是SockJS? SockJS是一个提供Websocket通信的JavaScript库,目的是实现在浏览器与服务器之间低延迟.全双工.跨域通信,它提供跨浏览器的统一API,即使不支持HTML5 W ...
- [java核心外篇]__Object类与对象类型的转型
前言 我们在之前的学习中提过很多次了,java是面向对象的,java的基础可以说是建立在类和对象上面的.然后我们又学到了类的继承,发现了在java类库中,类的继承是极为普遍的,一个类继承另一个类,就像 ...
- 解决:MVC对象转json包含\r \n
项目中对象转json字符串时,如下:JsonSerializerSettings jsetting = new JsonSerializerSettings(); jsetting.DefaultVa ...