Appearance
字符串的操作无论是在java开发还是Python开发中都是非常多的,本文不单会讲述字符串的常用操作,还有字符的格式化。常用的操作有大小写转换、字符串翻转、获取字符串长度、是否以某字符串开始、替换字符串、查询字符串的位置……
方法名称 | 使用效果 |
---|---|
capitalize | 将字符串首字母小写,其他字母小写 |
casefold | 所有字母转小写,casefold支持很多不同种类的语言 |
lower | 所有字母转小写,lower函数只支持Ascll表中的字符 |
upper | 所有字母转大写 |
swapcase | 字母大小写翻转 |
zfill | 为字符串定义长度,如不满足,缺少的部分用0填补 |
count | 统计字符在某字符串内出现的次数,使用方法 str.count('a') |
startswith | 判断开始位置是否是某元素 |
endswith | 判断结束位置是否是某元素 |
find | 查询元素在字符串内的位置,从0开始,如果找不到返回0 |
index | 查询元素在字符串内的位置,从0开始,如果找不到会报错 |
strip | 去除左右指定元素,默认去除空格; |
replace(old,new,max) | 字符串替换,默认全部替换,可指定替换数量 |
isspace | 是否全部由空格组成,注意空字符串返回的是False |
istitle | 字符串是否是一个标题类型,即每个单词首字母是否都是大写 |
isupper | 判断字符串字母是否都是大写 |
islower | 判断字符串字母是否都是小写 |
1.capitalize
将字符串首字母小写,其他字母小写,它仅对第一个字母有效,如果第一个字符是中文或者数字等其他字符,则不变。
python
if __name__ == '__main__':
name = 'hello world'
c1 = name.capitalize()
print(c1) # Hello world
2.操作字符相关
python
if __name__ == '__main__':
name = 'HelloWorld'
print(name.casefold()) # helloworld
print(name.lower()) # helloworld
print(name.upper()) # HELLOWORLD
print(name.swapcase()) # hELLOwORLD
3.zfill
python
if __name__ == '__main__':
name = 'HelloWorld'
print(name.zfill(20)) # 0000000000HelloWorld
print(name.zfill(2)) # HelloWorld
4.count
python
if __name__ == '__main__':
name = 'HelloWorld'
print(name.count('world')) # 0
print(name.count('World')) # 1
print(name.count('o')) # 2
5.startswith和endswith
python
if __name__ == '__main__':
name = 'HelloWorld'
print(name.startswith('Hello')) # True
print(name.endswith('World')) # True
print(name.endswith('Wor')) # False
6.find和index
python
if __name__ == '__main__':
name = 'HelloWorld'
print(name.find('o')) # 4
print(name.index('o')) # 4
print(name.find('a')) # -1
print(name.index('a')) # 报错
7.strip
去除字符串左右两边指定元素,默认去除空格。lstrip
仅去掉字符串开头指定元素,rstrip
仅去掉字符串结尾指定元素
python
if __name__ == '__main__':
name = ' Hello World '
print(name.strip()) # Hello World
name = 'Hello World'
print(name.strip('H')) # ello World
8.replace
python
if __name__ == '__main__':
name = 'Hello World'
print(name.replace('o', '1')) # Hell1 W1rld,全部替换
print(name.replace('o', '1', 1)) # Hell1 World,指定替换的数量
7.返回值为bool的方法
isspace
是否由空格组成,不包含空字符串;istitle
是否是标题类型,即单词首字母是否为大写;isupper
是否都为大写;islower
是否都为小写。
python
if __name__ == '__main__':
name = 'Hello World'
print(' '.isspace()) # True
print(''.isspace()) # False,空字符串返回的是False
print(name.isspace()) # False
print(name.istitle()) # True
print('helloworld'.istitle()) # False
print('helloworld'.isupper()) # False
print('helloworld'.islower()) # True
字符串的格式化
字符串的格式化主要有两种方式,第一种是在字符串中使用%类型
来代表一个占位符,第二种是使用format函数。
方法一:默认的字符串格式化方法
%s是一个占位符,在python中代表任意数据类型,使用方法如下
python
if __name__ == '__main__':
info = 'my name is %s, my age is %s' % ('CV大魔王', 20)
print(info)
info2 = 'my name is %s, my age is %s'
name1 = 'CV大魔王1'
age1 = 30
name2 = 'CV大魔王2'
age2 = 40
print(info2 % (name1, age1))
print(info2 % (name2, age2))
print(info2 % ('小明', age2))
控制台输出,如下所示
python
my name is CV大魔王, my age is 20
my name is CV大魔王1, my age is 30
my name is CV大魔王2, my age is 40
my name is 小明, my age is 40
符号 | 说明 |
---|---|
%s | 格式化字符串,通用类型 |
%d | 格式化整形 |
%f | 格式化浮点型 |
%u | 格式化无符号型(正整形) |
%c | 格式化字符(长度为1的字符串) |
方法二:使用format函数(推荐)
和log4j框架的使用方法有点像,{}
代表占位符。
python
if __name__ == '__main__':
info = 'my name is {}, my age is {}'
name = 'CV大魔王1'
age = 30
print(info.format(name, age))
方法三:Python3.6新方法
有种jsp的感觉和Vue的感觉,相当于字符串内嵌套python代码。
python
if __name__ == '__main__':
name = 'CV大魔王1'
age = 30
info = f'my name is {name}, my age is {age}'
print(info)