IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 第十天:字符串 -> 正文阅读

[JavaScript知识库]第十天:字符串

1.字符串相关操作和函数

1.1 字符串相关运算符

1)+ —— 字符串1 + 字符串2 —— 将两个字符串合并成一个字符串

str1='12'
str2='ac'
print(str1+str2)        #'12ac'

2)* —— 字符串1 * N、N*字符串 ——将字符串重复N次产生一个新的字符串

str1='12'
print(str1*2)   #'1212'

1.2 比较运算:>=、<=、>、<

1)两个字符串比较大小比较的是第一对不相等的字符的编码值的大小

print('ac0'>'Mccd')  #True
print('abc'=='acb')  #False

应用:比较字符大小来判断字符的类型

判断是否是数字字符:‘0’<=x<=‘9’

判断是否是小写字母:‘a’<=x<=‘z’

判断是否是字母:‘a’<=x<=‘z’ and ‘A’<=x<=‘Z’

判断是否是中文:’\u4e00’<=x<=’\u9fa5’

1.3 相关函数

#max、min、sorted
print(max('axcvd451'))  # 'a'
print(sorted(ac12))     # ['1', '2', 'a', 'c']

1)len —— len(字符串) —— 统计字符串中字符的个数

2)str —— str(数据) —— 将数据转化成字符串

a.所有的数据都可以转化成字符串

b.转化的时候直接在数据的打印值外加引号

str(10)  #'10'
str(True) #'True'
str([1,2,3]) #'[1, 2, 3]' 中间有空格

3)eval

eval(字符串) —— 将字符串的内容转化成有效代码的计算结果(去掉字符串的引号获取结果)

str1=eval('100')
print(str1,type(str1))     #100 <class 'int'>

str2=eval('1.2')
print(str2,type(str2))  #1.2 <class 'float'>

str3=eval('[1,2,3]')
print(str3,type(str3))  #[1, 2, 3] <class 'list'>

x=y=1
str4=eval('x+y')
print(str4,type(str4))  #2 <class 'int'>

2.字符串相关方法

2.1 center、rjust、ljust、zfill

1)字符串.center(宽度, 填充字符) xabcx
2)字符串.rjust(宽度, 填充字符) xxabc
3)字符串.ljust(宽度, 填充字符) abcxx
4)字符串.zfill(宽度) == 字符串.rjust(宽度, ‘0’) 00abc

str1 = 'abc'
result1 = str1.center(7, 'x')
result1 = str1.center(6, 'x')
print(result1)      # xxabcxx
print(result1)      # xabcxx(优先添加后面)

result2 = str1.rjust(7, 'x')
print(result2)     # xxxxabc

result3 = str1.ljust(7, 'x')
print(result3)      # abcxxxx

result4 = str1.zfill(7)
print(result4)      # 0000abc

# 注意:如果给的长度小于原字符串的长度,结果就是原字符串
print('abc234'.center(3, '0'))          # abc234

2.2 count

1)字符串1.count(字符串2) - 统计字符串1中字符串2的个数
2)字符串1.count(字符串2, 开始下标, 结束下标) - 统计字符串1中指定范围内字符串2出现的次数,范围:[开始下标, 结束下标)

str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.count('you')
print(result)       # 3

result = str1.count('you', -7)
print(result)                 # 1

2.3 endswith

1)字符串1.endswith(字符串2) - 判断字符串1是否以字符串2结束

print('abc123'.endswith('23'))      # True
print('abc123'.endswith('32'))      # False

2.4 find、rfind、index、rindex

1)字符串1.find(字符串2) - 获取字符串1中第一个字符串2出现的位置,如果字符串2不存在返回-1
2)字符串1.index(字符串2) - 获取字符串1中第一个字符串2出现的位置,如果字符串2不存在报错!

3)字符串1.find(字符串2, 开始下标, 结束下标)
4)字符串1.index(字符串2, 开始下标, 结束下标)

5)字符串1.-(字符串2) - 获取字符串1中最后一个字符串2出现的位置,如果字符串2不存在返回-1
6)字符串1.rindex(字符串2) - 获取字符串1中最后一个字符串2出现的位置,如果字符串2不存在报错!

7)字符串1.rfind(字符串2, 开始下标, 结束下标)
8)字符串1.rindex(字符串2, 开始下标, 结束下标)

str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.find('you')
print(result)       # 8

result = str1.rfind('you')
result1 = str1.rfind('aou')
print(result)      # 37
print(result1)     #-1

2.5 isalnum、isalpha、isdigit、isnumeric、islower、isupper、isspace

1)字符串.isalnum() - 判断字符串中所有的字符是否全是数字、字母或者中文
2)字符串.isalpha() - 判断字符串中所有的字符是否是字母或者中文

3)字符串.isdigit() - 判断字符串中所有的字符是否全是数字(只把0~9看数字)
4)字符串.isnumeric() - 判断字符串中所有的字符是否全是数字字符(将所有独立存在表示一个数值的符号都看成数字)

5)字符串.islower() - 判断字符串中所有的字符是否全是小写字母
6)字符串.isupper() - 判断字符串中所有的字符是否全是大写字母
7)(常用!)字符.islower() - 判断指定字符是否是小写字母
8)(常用!)字符.isupper() - 判断指定字符是否是大写字母

9)字符串.isspace() - 判断字符串中所有的字符是否都是空白字符

x = 'K'
print(x.islower())
print(x.isupper())

x = '0232一34二三十百万千拾万'
print(x.isdigit())      # False
print(x.isnumeric())    # True

2.6 join(*)

1)字符串.join(序列) - 将序列中的元素通过指定的字符串连接成一个新的字符串
注意:序列中的元素必须全是字符串

list1 = ['abc', 'mn', 'xy']
result = ''.join(list1)
print(result)       # 'abcmnxy'

result = '+'.join(list1)
print(result)       # 'abc+mn+xy'

nums = [10, 23, 89, 902]


result = ''.join([str(x) for x in nums])
print(result)       # '102389902'

# 练习:将nums中所有数字的第一位连接在一起
nums = [10, 23, 89, 902]
result = ''.join([str(x)[0] for x in nums])
print(result)       # '1289'

2.7 lower、upper

1)字符串.lower() - 将字符串中所有的大写字母都转换成小写字母
2)字符串.upper() - 将字符串中所有的小写字母都转换成大写字母

print('Kashs234--HKAM28pm'.lower())     # kashs234--hkam28pm
print('Kashs234--HKAM28pm'.upper())     # KASHS234--HKAM28PM

2.8 strip、lstrip、rstrip

1)字符串.strip() - 删除字符串前后的空白字符
2)字符串.lstrip() - 删除字符串前面的空白字符
3)字符串.rstrip() - 删除字符串后面的空白字符

str1 = '\t \n\t   abc 123 \t\n\t'
print('---', str1.strip(), '---', sep='')  #---abc 123---
print('---', str1.lstrip(), '---', sep='')  #---abc 123 	---
print('---', str1.rstrip(), '---', sep='')  #--- 	   abc 123---

2.9 maketrans、translate(一般两个函数结合使用)

1)str.maketrans(字符串1, 字符串2) - 让字符串1中的字符与字符串2中的字符创建一个对应关系表
注意:字符串1的长度和字符串2的长度必须一致,字符串1中的字符不重复,字符串2中的字符可以重复

2)字符串.translate(字符对应关系表) - 将字符串中的字符按照字符对应关系表对字符进行替换

例如: str.maketrans('abc', '123')  - 建立一个a和1对应,b和2对应,c和3对应的关系表
t=str.maketrans('1234','aaaa')
r='15248612653'.translate(t)
print(r)        #a5aa86aa65a

week = '星期2'
table = str.maketrans('1234567', '一二三四五六天')
print(week.translate(table))  # '星期二'

2.10 replace(*)

1)字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3

2)字符串1.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2都替换成字符串3

str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.replace('you', 'ME')
print(result)   # how are ME? Im fine, Thank ME! and ME?

result = str1.replace('you', 'ME', 2)
print(result)    # how are ME? Im fine, Thank ME! and you?

result=str1.replace('you','me',-5)
print(result)     #how are me? Im fine, Thank me! and me?

2.11 split(*)

1)字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割,返回一个列表
2)字符串1.split(字符串2, N) - 将字符串1中前N个字符串2作为切割点对字符串1进行切割

str1 = '123abcxyabcmn'
print(str1.split('abc'))        # ['123', 'xy', 'mn']

str1='1233211231567'
print(str1.split('1',2))       #['', '2332', '1231567']

3.字符串格式化

字符串格式化背景:一个字符串内容中可能有部分数据是变化的

3.1字符串拼接

name='小明'
age=18
message = name + '今年' + str(age) + '岁!'
print(message)         #小明今年18岁!

3.2格式字符串

1)包含格式占位符的字符串 % (数据1, 数据2,…)

格式占位符:
%s - 字符串占位符(C、java);python中可以给任何类型的数据占位
%d - 整数占位符,可以给任何数字占位
%f - 浮点数占位符(默认保留6位小数)(四舍五入)
%.Nf - 浮点数占位符,保留N位小数
%c - 字符占位(可以填充字符或者字符编码值)

str1 = '%s===%d===%.2f==%c' % ([10, 20], 23.90, 34.237282, 97)
print(str1)   #[10, 20]===23===34.24==a

3.3f-string

1)基本用法: {表达式}

在字符串的最前面加f,然后在字符串中通过{}来确定变化的部分

注意: {}中的内容可以是任何有结果的表达式,表达式的结果就是字符串填充内容

a, b = 10, 'abc'
result = f'{a * 3 > 20}=={b[-1]}'
print(result)       # 'True==c'

result = f'{a * 3 > 20}=={b.upper()}'
print(result)       # 'True==ABC'

2)加参数 - {表达式:参数}

a.参数1—— :.Nf - 控制保留N位小数

money = 16890.2823
print(f'月薪:{money:.2f}')  #16890.28

b.参数2——:,

逗号和小数一起用 - :,.Nf

money = 1900000
print(f'年薪:{money * 12:,}')     # 年薪:22,800,000

print(f'年薪:{money * 12:,.2f}')  # 年薪:22,800,000.00

c.:填充字符>长度 、:填充字符<长度(注意:如果填充字符没有,用空格填充,大于小于符号控制填充字符在前还是在后)

num = 5
study_id = f'2017{num:0>3}'
print(study_id)     # 2017005  (填充字符在前)

num=5
print(f'你好{num:x<5}!') #你好5xxxx! (填充字符在后)

num1 = 19
num2 = 2367
print(f'{num1:>4}') #  19
print(num2)         #2367
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:37:53  更:2021-12-11 15:39:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:45:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码