黑马程序员技术交流社区

标题: 字符串方法整理! [打印本页]

作者: 汐寒    时间: 2019-3-27 22:52
标题: 字符串方法整理!
本帖最后由 汐寒 于 2019-3-27 23:08 编辑

通过这几天的学习,目前来看最难的地方应该就是字符串的处理了,之前对概念不是很熟悉,总想着调用完方法以后处理的是字符串本身,后来才知道返回的是一个新字符串(划重点),在做题的时候不断输出原有字符串,毫无变化差点自闭,分享一些字符串的方法吧!大家以后用到的时候可以翻阅查看!
1.字母处理string.capitalize() # 把字符串的第一个字符大写

string.upper() # 转换 string 中的小写字母为大写

string.lower() # 转换 string 中所有大写字符为小写

string.swapcase() # 翻转 string 中的大小写

string.title() # 返回标题化的 string ,就是说所有单词都是以大写开始,其余字母均为小写
2.格式化相关
string.ljust(width) # 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

string.rjust(width) # 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

string.center(width) # 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

string.zfill(width) # 返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
3.字符串搜索相关
# 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.find(str, beg=0, end=len(string))

# 类似于find()函数,不过是从右边开始查找
string.rfind(str, beg=0,end=len(string))

# 跟find()方法一样,只不过如果str不在 string中会报一个异常
string.index(str, beg=0, end=len(string))

# 类似于index(),不过是从右边开始.
string.rindex(str, beg=0,end=len(string))

# 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string.count(str, beg=0, end=len(string))

# 上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find返回-1
4.字符串替换
# 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次
string.replace(str1,str2,num=string.count(str1))

# 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.join(seq)
5.字符串去空格及去指定字符
str.strip([chars])

str = "00000003210Runoob01230000000"
print str.strip('0') # 去除首尾字符 0
str2 = "   Runoob      " # 去除首尾空格
print str2.strip()

3210Runoob0123
Runoob

string.rstrip() # 删除 string 字符串末尾的空格

string.lstrip() # 删除 string 字符串左边的空格

# 以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+ 个子字符串
string.split(str="", num=string.count(str))
6.字符串判断相关
# 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
string.startswith(obj, beg=0,end=len(string))

# 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False
string.endswith(obj, beg=0, end=len(string))


string.isalnum()# 如果string至少有一个字符并且所有字符都是字母或数字则返 True,否则返回 False

string.isalpha() # 如果string至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

string.isdecimal() # 如果 string 只包含十进制数字则返回 True 否则返回 False
# True: Unicode数字,,全角数字(双字节)
# False: 罗马数字,汉字数字
# Error: byte数字(单字节)

string.isdigit() # 如果 string 只包含数字则返回 True 否则返回 False.
# True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
# False: 汉字数字
# Error: 无

string.isnumeric() # 如果 string 中只包含数字字符,则返回 True,否则返回 False
# True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
# False: 无
# Error: byte数字(单字节)

# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.islower()

# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.isupper()

string.isspace() # 如果 string 中只包含空格,则返回 True,否则返回 False

string.istitle() # 如果 string 是标题化的则返回 True,否则返回 False
7.一些不太常用的字符串方法
# 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
string.decode(encoding='UTF-8', errors='strict')

# str = "this is string example....wow!!!"
# str = str.encode('base64','strict');
# print ("Encoded String: " + str)
# print ("Decoded String: " + str.decode('base64','strict'))

# Encoded String: dGhpcyBpcyBzdHJpbmcgZXhhbXBsZS4uLi53b3chISE=
# Decoded String: this is string example....wow!!!

# 以 encoding 指定的编码格式编码 string,如果出错默认报一个 ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
string.encode(encoding='UTF-8', errors='strict')

# 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8
string.expandtabs(tabsize=8)

# str = "this is\tstring example....wow!!!"
# print "Original string: " + str
# print ("Defualt exapanded tab: " +  str.expandtabs())
# print ("Double exapanded tab: " +  str.expandtabs(16))

# Original string: this is        string example....wow!!!
# Defualt exapanded tab: this is string example....wow!!!
# Double exapanded tab: this is         string example....wow!!!

string.format() # 格式化字符串

# maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标
string.maketrans(intab, outtab)

# from string import maketrans   # 必须调用 maketrans 函数。
# intab = "aeiou"
# outtab = "12345"
# trantab = maketrans(intab, outtab)
# str = "this is string example....wow!!!";
# print str.translate(trantab);

# th3s 3s str3ng 2x1mpl2....w4w!!!

max(str) # 返回字符串 str 中最大的字母

min(str) # 返回字符串 str 中最小的字母

# 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
string.translate(str, del="")

















欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2