java字符串截取从特殊字符_python学习05-字符串

Python中常用的字符串操作方法

1. 字符串常用操作

1)拼接字符串:使用“+”运算符可对多个字符串进行拼接(字符串不允许与其他类型的数据进行拼接)

例子:

mot_en = 'Remember is a form of meeting. Frgetfulness is a form offreedom'mot_cn = '记忆是一种相遇。遗忘是一种自由。'print(mot_en + '————' + mot_cn)

输出结果:

Remember is a form of meeting. Frgetfulness is a form offreedom————记忆是一种相遇。遗忘是一种自由。

2)字符串长度计算:使用len()函数

例子:

str1 = '人生苦短,我用Python!'length = len(str1)print(length)

输出结果:

14

备注:使用UTF-8,汉字占3个字符;使用GBK或GB2312,汉字占2个字节,此时使用encode()方法进行编码

3)截取字符串:采用切片方法实现

例子:

str1 = '人生苦短,我用Python!'substr1 = str1[1]substr2 = str1[5:]substr3 = str1[:5]substr4 = str1[2:5]print('原字符串: ' + str1)print(substr1 + '' + substr2 + '' + substr3 + '' + substr4)

输出结果:

原字符串: 人生苦短,我用Python!生我用Python!人生苦短,苦短,

备注:取头不取尾

4)分割字符串:使用split()方法

语法格式:str.split(sep, maxsplit)sep:指定分隔符,默认为Nonemaxsplit:指定分割的次数

备注:指定maxsplit时,sep必须指定

例子:

str1 = 'Python 官 网 >>> www.python.org'print('原字符串为: ', str1)list1 = str1.split()list2 = str1.split('>>>')list3 = str1.split('.')list4 = str1.split(' ', 3)print(str(list1) + '' + str(list2) + '' + str(list3) + '' + str(list4))list5 = str1.split('>')print(list5)

输出结果:

原字符串为: Python 官 网 >>> www.python.org['Python', '官', '网', '>>>', 'www.python.org']['Python 官 网 ', ' www.python.org']['Python 官 网 >>> www', 'python', 'org']['Python', '官', '网', '>>> www.python.org']['Python 官 网 ', '', '', ' www.python.org']

5)检索字符串

c39412768d456609a5e6952193cfc1a8.png

例子:

str1 = '@李彦宏 @扎克伯格 @任正非'print('字符串 "' + str1 + '" 中包含 ', str1.count('@'), '个@')print('字符串 "' + str1 + '" 中@首次出现的位置索引为: ', str1.find('@'))print('字符串 "' + str1 + '" 中*首次出现的位置索引为: ', str1.find('*'))print('字符串 "' + str1 + '" 中@首次出现的位置索引为: ', str1.index('@'))print('字符串 "' + str1 + '" 是否以@开头,结果为: ', str1.startswith('@'))print('字符串 "' + str1 + '" 是否以@结尾,结果为: ', str1.endswith('@'))

输出结果:

字符串 "@李彦宏 @扎克伯格 @任正非" 中包含 3 个@字符串 "@李彦宏 @扎克伯格 @任正非" 中@首次出现的位置索引为: 0字符串 "@李彦宏 @扎克伯格 @任正非" 中*首次出现的位置索引为: -1字符串 "@李彦宏 @扎克伯格 @任正非" 中@首次出现的位置索引为: 0字符串 "@李彦宏 @扎克伯格 @任正非" 是否以@开头,结果为: True字符串 "@李彦宏 @扎克伯格 @任正非" 是否以@结尾,结果为: False

6)字符的大小写切换

lower()方法:将字符串中的大写转换成小写,语法格式:str.lower()upper()方法:将字符串中的小写转换成大写,语法格式:str.upper()

例子:

str1 = 'WWW.Python.org'print('原字符串: ', str1)print('新字符串1:', str1.lower())print('新字符串2:', str1.upper())

输出结果:

原字符串: WWW.Python.org新字符串1: www.python.org新字符串2: WWW.PYTHON.ORG

7)去除字符串中的空格和特殊字符

strip()方法:去除字符串左右两边的空格和特殊字符,语法格式:str.strip([chars])lstrip()方法:去除字符串左边的空格和特殊字符,语法格式:str.lstrip([chars])rstrip()方法:去除字符串右边的空格和特殊字符,语法格式:str.rstrip([chars])

默认情况不指定chars的情况下,去除空格及特殊字符

例子:

str1 = ' http://www.python.org 'print('原始字符串:' + str1 + '。')print('字符串1:' + str1.lstrip() + '。') #去除左边的空格和特殊字符print('字符串2:' + str1.rstrip() + '。') #去除右边的空格和特殊字符print('字符串3:' + str1.strip() + '。') #去除左右两边的空格和特殊字符

输出结果:

原始字符串: http://www.python.org 。字符串1:http://www.python.org 。字符串2: http://www.python.org。字符串3:http://www.python.org。

8)格式化字符串

格式化字符串首先指定模板,模板中预留空位,根据需要填上相应的内容。有以下两种方法:

809f402517fdb301d85d2ada45298f31.png

a. 使用%操作符

语法格式:'%[-][+][0][m][.n]格式化字符串'%exp-:可选参数,用于左对齐+:可选参数,用于右对齐0:可选参数,填充空白m:可选参数,占有宽度.n:可选参数,小数点后保留的空格exp:要转换的项,若指定项有多个,意元组的形式指定。
b95f94fa3fab2b285065ef6a560d8ecd.png

例子:

template = '编号:%09d公司名称:%s 官网:https://www.%s.com'context1 = (7, '百度', 'baidu')context2 = (8, '腾讯', 'qq')print(template%context1)print(template%context2)

输出结果:

编号:000000007公司名称:百度 官网:https://www.baidu.com编号:000000008公司名称:腾讯 官网:https://www.qq.com

备注:python社区推荐使用下面的format()方法。

b. 使用字符串对象的format()方法

语法格式:str.format(args)str为指定的字符串的的模板,args为指定要转换的项,多个时,以逗号进行分隔模板基本语法格式:{[index][:[fill]align][sign][#][width][.precision][type]}index:可选参数,设置格式的对象在参数列表中的索引位置,从0开始fill:可选参数,指定空白处要填充的字符align:可选参数,指定对齐方式,< 左对齐,> 右对齐,^ 表示居中,需要配置width使用,= 表示内容右对齐,将符号放在填充内容最左侧,且只对数字类型有效sign:可选参数,指定无符号数,+ 表正数加正好,负数加负号,- 表示正数不变,负数加负号,空格 表示正数加空格,负数加负号#:可选参数,对于二进制/八进制/十六进制,加上#,显示’0b/0o/0x’width:可选参数,指定所占宽度.precision:可选参数,指定保留的小数位数type:可选参数,指定类型
e81c0add8be3bbeb4a8b72104a7a6a64.png

例子:

template = '编号: {:0>9s}公司名称:{:s} 官网:http://www.{:s}.com'context1 = template.format('7', '百度', 'baidu')context2 = template.format('8', '腾讯', 'qq')print(context1)print(context2)

输出结果:

编号: 000000007公司名称:百度 官网:http://www.baidu.com编号: 000000008公司名称:腾讯 官网:http://www.qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值