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)--制作一个漂亮的视频播放器中制作了 ...
随机推荐
- java责任链模式及项目实际运用
1.前言 上次我们认识了java责任链模式的设计,那么接下来将给大家展示责任链模式项目中的实际运用.如何快速搭建责任链模式的项目中运用. 2.简单技术准备 我们要在项目中使用借助这样的几个知识的组合运 ...
- Javascript高级编程学习笔记(41)—— DOM(7)DocumentFragment类型
DocumentFragment类型 除开昨天我们了解的两种不常用的类型之外 今天我们要介绍的两种类型可以说使用频率不输于前面最常用的几种元素类型 首先就是DocumentFragment类型 有些小 ...
- IDEA中使用lombok插件
Lombok是什么? lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下 ...
- Docker学习笔记-简单运行.netcore
前言: 环境:centos7.5 64 位 正文: 拉取 microsoft/dotnet, 安装完毕后执行 docker images 可以看到本地已经包含 microsoft/dotnet #包含 ...
- object标签和embed标签
概述 html中有许多用于嵌入各种类型内容的标签,包括:embed,audio,canvas,iframe,img,math,object,svg和video.之前我在很多地方都看到了object标签 ...
- [Swift]创建CoreData的两种方式
一.CoreData介绍 CoreData主要分为两部分: 上层是模型层,模型层有NSManagedObjectContext上下文管理着, 底层则是由SQLite实现的持久化部分,通过NSPersi ...
- 用excel记录测试bug问题总结
前几天与开发在讨论问题的时候,开发提了一个问题,说是已经解决的问题,能否用excel表格总结一下,问了一下原因,感觉想法很好,就总结了一下. 在上家公司的时候,提交bug用的是mantis,现在是禅道 ...
- 【PHP篇】运算及流程控制
算数运算: 1.运算符罗列: 算数运算符:[+].[-].[*].[/].[%].[++].[--] 赋值运算符:[=].[+=].[-=].[*=].[/=].[%=].[.=] 比较运算符:[&g ...
- 告诉你,Spring Boot 真是个牛逼货!
现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下. Spring Boot ...
- vue属性监听
1.watch:用来监听每一个属性的变化 2.watch这个对象里面都是函数,函数的名称是data中的属性名称,watch中的函数不需要调用 3.当属性发生改变那么就会触发watch函数,每个函数都会 ...