Python_字符串处理方法
1.字符串转换
#strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2
#strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print (sStr1)
#strchr(sStr1,sStr2) # < 0 为未找到 sStr1 = 'strchr' sStr2 = 's' nPos = sStr1.index(sStr2) print (nPos)
#strcmp(sStr1,sStr2) sStr1 = 'strchr' sStr2 = 'strch' print (sStr1 is sStr2) #----------------------- #strcmp(sStr1,sStr2) sStr1 = 'strchr' sStr2 = 'strch' print (sStr1 == sStr2)
#strspn(sStr1,sStr2) sStr1 = '12345678' sStr2 = '456' #sStr1 and chars both in sStr1 and sStr2 print (len(sStr1 and sStr2))
#strlen(sStr1) sStr1 = 'strlen' print (len(sStr1))
#S.lower() #小写 #S.upper() #大写 #S.swapcase() #大小写互换 #S.capitalize() #首字母大写 #String.capwords(S) #这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起 #实例: #strlwr(sStr1) sStr1 = 'JCstrlwr' sStr1 = sStr1.upper() #sStr1 = sStr1.lower() print (sStr1)
#strncat(sStr1,sStr2,n) sStr1 = '12345' sStr2 = 'abcdef' n = 3 sStr1 += sStr2[0:n] print (sStr1)
#strncmp(sStr1,sStr2,n) sStr1 = '12345' sStr2 = '123bc' n = 3 print ((sStr1[0:n] == sStr2[0:n]))
#在2.*有个cmp比较方法, 案例:cmp(a,b) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 # Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有: operator.lt(a, b) operator.le(a, b) operator.eq(a, b) operator.ne(a, b) operator.ge(a, b) operator.gt(a, b) operator.__lt__(a, b) operator.__le__(a, b) operator.__eq__(a, b) operator.__ne__(a, b) operator.__ge__(a, b) operator.__gt__(a, b)
#strnset(sStr1,ch,n) sStr1 = '12345' ch = 'r' n = 3 sStr1 = n * ch + sStr1[3:] print (sStr1)
Python3 40个字符串处理方法
1.capitalize()首字母转大写
>>> a = 'aaaaaa'
>>> a.capitalize()
'Aaaaaa'
2.casefold()将字符串所有字符改为小写
>>> (a.capitalize()).casefold() 'aaaaaa'
3.center(width) 将字符串居中,并用空格将字符串填充至width长度,空格均匀分布在两侧,当width<len(s)时没有效果
>>> a.center(20) ' aaaaaa '
4.count(sub[,start[,end]]) 返回sub在字符串里出现的次数,start,end为可选参数,决定范围
>>> a.count('a') 6
5.encode(encoding='utf-8',errors='strict') 以encoding指定的编码格式对字符串进行编码
>>> a.encode(encoding='utf8') b'aaaaaa'
6.endswith(sub[,start[,end]]) 检查字符串是否以sub结尾,是返回True,否返回False,start,end为可选参数,决定范围
>>> a.endswith(a)
True
7.expandtabs([tabsize=8]) 把字符串的tab字符(\t)转化为空格,如不指定tabsize,默认为8个空格
>>> b = 'aaa bbb' #aaa后面有个table >>> b.expandtabs() # 'aaa bbb'#table转为空格
>>> s='\t i love cnblog\t' >>> s '\t i love cnblog\t' >>> s.expandtabs() ' i love cnblog ' #这里第一个\t转化为8个空格,第二个tab是在后面加了3个空格,与'cnblog'相加共8个字符,并不是直接加8个空格
8.find(sub[,start[,end]]) 检测sub是否在字符串中,如果在则返回index,否则返回-1,start,end为可选参数,决定范围
>>> s='i love cnblog' >>> s.find('o') 3
9.index(sub[,start[,end]]) 类似find(),不同在于如果sub不在字符串中,返回的不是-1而是异常
>>> b 'aaa\tbbb' >>> b.index('b') 4
10.isalnum() 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则False
>>> s='i love cnblog'#有空格 >>> s.isalnum() False >>> s='ilovecnblog' >>> s.isalnum() True >>> s='11ii' >>> s.isalnum() True
11.isalpha() 如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则False
12.isdigit() 如果字符串只包含数字则返回True,否则返回False
13.isdecimal() 如果字符串只包含十进制数字则返回True,否则返回False
14.islower() 如果字符中至少包含一个能区分大小写的字符,并且这些字符都是小写则返回True,否则返回Flase
isupper()如果字符中至少包含一个能区分大小写的字符,并且这些字符都是大写则返回True,否则返回Flase
15.isnumeric() 如果字符串只包含数字字符,则返回True,否则返回False
17.isidentifier() 判断字符串是否包含该语言的保留字
18.isprintable() 判断字符串中所有的字符串都是可以通过repr表示成字符串,或者字符串是空的,都返回True,否则返回False
19.isspace() 判断字符串,至少有一个字符的字符串中所有字符是否都是空格,不是则返回False
20.istitle() 判断是否是标题格式,这里理解为首字母大写。
21.isupper() 判断字符串是否全部是大写
22.join() 返回一个用指定字符串分隔的字,或者是将指定字符加入到另一个字符中。
23.lower() 返回的是指定字符串的拷贝,并转化成小写
24.ljust() 可以指定宽度,以及填充字符串,返回的是按宽度,填充字符串格式化后的左对齐的字符串。
25.partition:在指定字符串中查找sep,如果找到了返回该字符前面的部分,sep,及后面的部分,
26.replace ,用指定字符串替换指定字符串,如果不指定替换次数,仅替换第一个。
27.rfind(): 返回指定子串的最高索引,如果没找到则返回-1,可以指定要开始替换的起始,结束位置。
28.rindex(),与上面的rfind一样,只是如果没找到不是返回-1,而是触发错误
29.rjust();与ljust()相对应
30.rpartition()与partition一样,但是是从右边开始
31.rsplit(),与split作用相同,但是从右侧开始
32.rstrip(), 从右侧移除指定字符
33.split(), 按指定字符串对目标字符串进行切割,可以指定切割次数
34.splitlines(),返回字符串的行,按换行符切割,如果没指定keepends=True,则会将其从结果中移除
35.startswith(),判断字符串是否以某个字符开头
36.strip() 移除字符串两侧的指定字符串,默认移除空格,需要注意的是可以指定多个字符
37.swapcase() 转换大小写
38.title(), 标题格式,就是首字母大写,其它字符小写
39.upper(),将字符全部转成大写
40.zfill(),这里的z指zero,用0将字符填充到指定长度