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)--制作一个漂亮的视频播放器中制作了 ...
随机推荐
- 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)
1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...
- 安装owncloud作为自己的云服务器
环境:centos7,php5.6.37,apache2.4.6 首先,环境都要搭好,与之前搭wordpress网站是一样的.接下来下载程序 wget https://download.ownclou ...
- Javascript高级编程学习笔记(54)—— DOM2和DOM3(6)范围选择
范围 为了让开发人员更加方便地控制页面“DOM2级遍历和范围”模块定义了“范围”接口 通过该接口开发人员可以选择文档中的一个区域,而不必考虑元素的界限 在常规操作不能有效地修改文档时,使用范围往往可以 ...
- C++ Opencv HoughLines()用霍夫变换在二元图像中寻线
一.霍夫变换简介 参考http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm 二.HoughLines()函数详解 该函数接受的输入矩阵只能是8位单通道的二 ...
- Emmet/Zen Coding 快速入门说明
快速参考 以下是支持的特性: ele creates an HTML element tag 展开一个HTML元素标签 # creates an id attribute 作用于元素标签,展开一个id ...
- leetcode69 X的平方根的几种解法
第一种自然就是调APi啦(手动滑稽) public int mySqrt(int x) { return (int)Math.sqrt(x); } 时间是52 ms,还超过了1/5的人呢 第二种 二分 ...
- Mac环境下PHP连接mysql提示Server sent charset (255) unknown和(HY000/2054)
错误提示: mysqli_connect(): Server sent charset (255) unknown to the client. Please, report to the devel ...
- 解决AssetBundle包加载预制体时,Shader显示异常的问题
现象: 预制体上的粒子效果显示为紫色方块. 原因:shader在打成AB包后与指定平台产生相关性,Editor中无法正常读取. 解决办法: 遍历所有加载的对象,重新赋值Shader 代码: //修正s ...
- PYTHON 中 SQL 带参数
使用 PYTHON 的字符串填充方式 import mysql.connector sql = 'select \* from school.student where age > {age} ...
- JS中如何理解浮点数?
本文由云+社区发表 相信大家在平常的 JavaScript 开发中,都有遇到过浮点数运算精度误差的问题,比如 console.log(0.1+0.2===0.3)// false.在 JavaScri ...