每一门语言都离不开字符串以及字符串操作,Python也为字符串定义了很多函数。
1、字符串切片
sub = string[起始位置:结束为止:步长]
-
获得子字符串
string = "http://www.jianshu.com/p/2cb6159d3f13" print("%s 子字符串:%s"%(string, string[7:15]))
-
获得所有字符串
string = "http://www.jianshu.com/p/2cb6159d3f13" print("%s 打印全部是:%s"%(string, string[0:len(string)])) print("%s 打印全部是:%s"%(string, string[0:])) print("%s 打印全部是:%s"%(string, string[:])) print("%s 打印全部是:%s"%(string, string[::]))
-
反向打印字符串
string = "http://www.jianshu.com/p/2cb6159d3f13" print("%s 反向打印字符串是:%s"%(string, string[::-1]))
2、find查找前缀,rfind查找后缀
string = "http://www.jianshu.com/p/2cb6159d3f13"
findIndex = string.find(":")
if findIndex == -1:
print("%s 没有找到的协议"%string)
else:
print("%s 找到的协议是:%s"%(string,string[0:findIndex]))
fileName = "/test/A/a.text"
findIndex = fileName.rfind(".")
if findIndex == -1:
print("文件%s 没有找到扩展名"%fileName)
else:
print("文件%s 找到的扩展名是:%s"%(fileName, fileName[findIndex+1:]))
3、如果使用index和rindex,需要注意,如果没有子字符串,则会出现异常
string = "http://www.jianshu.com/p/2cb6159d3f13"
print("%s 使用的协议是:%s"%(string, string[0:string.index(":")]))
print("%s 使用的协议是:%s"%(string, string[0:string.rindex(":")]))
4、count测试字符串重复出现的次数
-
一般用法:
string = "http://www.jianshu.com/p/2cb6159d3f13" subString = "jianshu" print("%s 在‘%s’重复出现了%d次"%(subString, string, string.count(subString)))
-
特殊用法:count测试的时候可以指定起始位置和结束位置
string = "http://www.jianshu.com/p/2cb6159d3f13" subString = "jianshu" print("%s在‘%s’的[%d,%d]区间重复出现了%d次"%(subString, string, 20, 30, string.count(subString, 20, 30)))
5、replace替换字符串中的子字符串
-
用replace替换字符串时,需要注意原字符串不改变,替换后的字符串以返回形式返回
string = "http://www.jianshu.com/p/2cb6159d3f13" newString = string.replace("http", "https") print("%s 替换协议后是:%s"%(string,newString))
-
用replace默认替换所有匹配的,也可以指定替换几个
message = "hello world! Ha Ha ha" newMessage1 = message.replace("Ha", "ha") print(newMessage1) newMessage2 = message.replace("Ha", "ha", 1) print(newMessage2)
6、split分隔字符串
string = "http://www.jianshu.com/p/2cb6159d3f13"
print(string.split("://"))
7、title:字符串每个单词首字母大写和capitalize:字符串首字母大写
message = "hello world! Ha Ha ha"
temp1 = message.title()
temp2 = message.capitalize()
print((message, temp1, temp2))
8、startswith和endswith
判断是否以某个字符串开头或结尾。
string = "http://www.jianshu.com/p/2cb6159d3f13"
if string.startswith("http"):
print("字符串是以:http开头的");
fileName = "/test/A/a.text"
if fileName.endswith("text"):
print("字符串是以:text结尾的");
9、lower和upper
将字符串以小写或大写形式输出。
message = "hello world! Ha Ha ha"
newMessage1 = message.lower()
newMessage2 = message.upper()
print("%s转换后为:%s====%s"%(message, newMessage1, newMessage2))
10、ljust、rjust和center
给定字符串宽度,输出按照左对齐,右对齐和中间对齐符串。
message = "hello world! Ha Ha ha"
print(message.ljust(50))
print(message.rjust(50))
print(message.center(50))
11、lstrip、rstrip和strip
输出去掉字符串前、后或者前后空格的字符串。
message = " hello world! Ha Ha ha "
print(message.lstrip(" "))
print(message.rstrip(" "))
print(message.strip(" "))
12、partition和rpartition
将字符串分成三部分,区别与split。
string = "http://www.jianshu.com/p/2cb6159d3f13"
print(string.partition("://"))
print(string.rpartition("://"))
13、join链接字符串
strings = ["hello", "world", "ha"]
strTemp = "*"
strTemp = strTemp.join(strings)
print(strTemp)
以上代码可以在GitHub找到。
网友评论