字符串

【字符串算法】——KMP算法、压缩字符串、字符串镜像、翻转字符串 场景一:输入字符串s和字符串subs,输出串subs在串s中匹配成功时的位置。 思路:设s长度为n,subs长度为m,如果暴力遍历,则时间复杂度为n(m*n);如果使用KMP算法,则时间复杂度为n(m+n)。 推荐一篇文章:KMP算法的next[]数组通俗解释 这篇文章是我学习kmp算法中感觉最通俗易懂的文章。 代码实现(java): /** * Next数组表示:当与匹配串匹配到位 阅读详情

字符串

简介
在非注释语句中,凡是用引号括起来的部分都是字符串

一、字符串的运算符

1、is和==的不同

# 字符串:
s1='abc'
s2="abc"
s3='''
abc
'''
#'''三引号占用的内存空间与单双引号的不同(前提:'''的内容不在一行上)
print(s1 == s2)   #比较的是内容
print(s1 is s2)    #比较的是地址

在这里插入图片描述

s1 = input('请输入:')     #'abc'
s2 = input('请输入:')     #'abc'
print(s1 == s2) #True
print(s1 is s2) #False

在这里插入图片描述
(常量赋值is是True,input输入底层做了处理所以最后的地址是不一样的)

2、字符串的运算符 + *

s3 = s1+s2 #+相当于拼接符
s4 = s1*5 #倍数
print(s3)
print(s4)

在这里插入图片描述

3、in 在…里面

name = 'steven'
result = 'tv' in name #返回值是布尔类型
print(result)

在这里插入图片描述

二、字符串的格式化

name = 'steven'
print('%s说:%s' % (name,'大家好好学习!'))
#r 保留原格式 有r 则不发生转义 没有r则发生转义(例如:\')
print(r'%s说:\'哈哈哈!\''%name)
print('%s说:\'哈哈哈!\''%name)

在这里插入图片描述

三、字符串的截取

1、正序

#[]  [:] 索引值从0-N
filename = 'picture.png'
#位置都是从0开始,位置也会称作下标或者索引
print(filename[5]) # 通过[]可以结合位置 获取有字母 特点:只能获取一个

在这里插入图片描述

# range(1,10) --类似-->[1:10]
print(filename[0:7]) #包前不包后
print(filename[3:7]) #截取字符串

在这里插入图片描述

#省略
print(filename[3:])#只要省略的是后面的,表示一直取到字符串的末尾
print(filename[:7])#只要省略的是前面的,表示从0开始取值

在这里插入图片描述

#负数
print(filename[8:-1])
print(filename[:-2])
print(filename[-1:])
print(filename[-5:-1])

在这里插入图片描述

2、逆序

[::-1] 最后一位不仅表示步长还表示方向

str1 = 'abcdefg'
print(str1[-1:-5:-1])     #gfed

在这里插入图片描述

四、字符串的内置函数

简介
声明一个字符串,默认可以调用内建函数(系统准备好的一些函数)

1、大小写相关的

应用:一般用于开发中用户名的输入和验证
capitalize() title() upper() lower()

message = 'zhaorui is a beautiful girl'
msg = message.capitalize() #将字符串的第一个字符转成大写
print(msg)
msg = message.title()#将每个单词的每一个字母都大写
print(msg)
msg = message.upper()#将字符串全部转成大写
print(msg)
msg = message.lower()#将大写全部都转为小写
print(msg)

在这里插入图片描述

2、查找和替换

find() rfind() lfind() index() rindex() lindex() replace()

s1 = 'index lucy lucky goods'
result = 'R' in s1
print(result)  #返回布尔值
position = s1.find('R')  #返回值是-1代表没有找到
print(position)
position =s1.find('l') #如果可以找到则返回字母第一次出现的位置
print(position)
#find('要查找的字符',开始位置,结束位置)
p=s1.find('l',position+1) #根据第一次出现的位置往后继续查找即指定开始的位置查找
print(p)

在这里插入图片描述

#rfind 从右侧开始查找
#index 跟find() 方法一样,只不过如果str不在字符串中会报一个异常
# p = 'hello'.index('x')
# print(p)  #报异常ValueError: substring not found
#替换replace(old,new,[max])
s1 = 'index lucy lucky goods'
s2=s1.replace(' ','',2)
print(s2)

在这里插入图片描述

3、编码

encode编码 decode解码

msg = '上课啦,认真听讲!' #中文的
#gbk中文 #   gb2312简体中文
result = msg.encode('utf-8')
print(result)
#解码
m = result.decode('utf-8')
print(m)

在这里插入图片描述

4、startswith() endswith()

startswith()判断是否是以xxx开头的,或者endswith判断是否是以xxx结尾的,返回值都是布尔类型True False
应用:文件上传 只能上传图片(jpg,png,bmp,gif)

filename ='笔记本.doc'
result = filename.endswith('txt')
print(result)

s = 'hello'
result=s.startswith('he')
print(result)

在这里插入图片描述
补充:在开发中简单的小应用

path = input('请选择文件:')
#分析:要上传的文件路径path--》文件名--》通过文件名再判断是否是图片类型
p = path.rfind('\\')  #\\表示转义之后的一根杠
filename = path[p+1:]  #通过切片截取文件名字
#判断是否是图片类型?
if filename.endswith('jpg') or filename.endswith('png') or filename.endswith('bmp'):
    print('是图片允许上传')
else:
    print('不是图片格式,只能上传图片')

5、isalpha() isdigit()

isalpha()是否是字母 isdigit()是否是数字

s = 'abcd'
result = s.isalpha()
print('result=',result)

s='6688'
result=s.isdigit()
print(result)

在这里插入图片描述
应用

sum = 0
i = 1
while i<=3:
    num = input('请输入数字:')

    if num.isdigit():
        num = int(num)
        sum+=num
        print('第{}个数字累加成功!'.format(i))
        i+=1
    else:
        print('不是数字!')
print('sum=',sum)

在这里插入图片描述
其他:
isnumeric()如果字符串中只包含数字字符,则返回True,否则返回False
isspace()如果字符串中只包含空白,则返回True,否则返回False

6、拼接、分割、去除空格

join(seq)
以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串

new_str ='-'.join('abc') #将abc用-连接构成一个新的字符串
print(new_str)

list1=['a','l','l','o','w']
result=''.join(list1)
print(result)
print(type(result))  #返回一个新的字符串

在这里插入图片描述
split分割字符串,将分割后的字符串保存到列表中

s = 'hello world hello 2021'
result = s.split(' ',2)#表示按照空格作为分割符,分割字符串2次
print(result)
n = s.count(' ')#count(args)求字符串中指定args个数
print(n)

在这里插入图片描述
lstrip去掉左边空格 rstrip去除右边空格 strip()去除左右两侧空格

s = '     hello     '
s = s.lstrip()
print(s+'8')

在这里插入图片描述

iOS开发:字符串处理:截取字符串、匹配字符串、分割字符串 分享一个比较基础的知识点,记录一下,以备以后使用的时候查找方便,现在岁数大了,脑子不好使了,记忆力减退,年轻人可以忽略此博客。本篇要分享的是关于iOS开发中,字符串简单处理的方法,此部分过于基础,仅作加强记忆、记录使用。 一、截取字符串 进行截取字符串的操作,需求不同截取的方式不同,这里只介绍下面的截取方式。 1、截取下标某一位之前的字符串 NSString *string = @"123... 阅读详情

相关推荐

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 911

Java中的String类

Java中的String类String类简介String类对象的创建String类构造方法:字符串的静态赋值String类常用方法字符串和基本类型的转换创建一个表格 String类简介 String类是Java是API提供的一个最为常用的基本字符串处理类,该类提供了非常丰富的字符串处理方法。Java把String类声明为final类,不能有子类。 String类对象的创建 先进行字符串声明,再进行字符串赋值: String str1;//字符串声明 String str2; str1 = new Strin

m0_50115641的博客 406

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3686

Python中定位子字符串的方法(模仿数据库的instr)

子字符串查找,仿照数据库的instr方法

m0_63879292的博客 1474

SAP采购信息记录批量维护实战:用BAPI ME_INFORECORD_MAINTAIN搞定价格等级和条件记录

本文深入解析SAP标准BAPI ME_INFORECORD_MAINTAIN在采购信息记录批量维护中的应用,特别聚焦价格等级和条件记录的技术难点。通过实战案例和代码示例,帮助用户高效处理供应商-物料价格数据,提升供应链管理效率。

weixin_42522320的博客 413

FPGA中参数化SPI接口设计与Verilog实现

SPI(串行外设接口)作为嵌入式系统的核心通信协议,通过全双工、高速率特性在FPGA与Flash、ADC等外设交互中占据重要地位。参数化设计通过抽象时钟极性、数据位宽等可配置维度,采用分层架构实现硬件复用,显著提升开发效率。Verilog实现需重点处理跨时钟域同步和可配置帧结构,结合AXI总线集成与UVM验证方法学,可构建适应工业控制、物联网网关等场景的高可靠SPI解决方案。

ciya3282的博客 1408

【自学Python】Python查找字符串位置

在开发过程中,很多时候我们有在一个字符串中查找另一个字符串位置的需求,在 Python 中,在一个字符串中查找另一个字符串的位置我们使用 index() 函数。index() 函数的功能与 find() 函数类似,但当指定的字符串不存在时,index() 方法会抛出异常,而 find() 函数则是返回 -1。

haicoder_ibai的博客 1万+

Kafka 系列 —(17)Kafka 流式处理:Kafka Streams架构、使用场景、框架选择

本文介绍了KafkaStreams的架构特点、应用场景及与其他流处理框架的比较。KafkaStreams作为嵌入式分布式流处理库,其核心架构包含流处理器、任务、拓扑和本地状态存储,具备自动容错和伸缩能力。适用于实时监控、ETL、聚合、Join、物化视图等低延迟场景。与Flink、Spark相比,KafkaStreams适合简单架构和微服务,而Flink适合大规模处理,Spark更适合批处理。选择框架需根据具体场景需求,如微服务推荐KafkaStreams,大规模处理推荐Flink。

moton2017的博客 1631

python获取列表中指定元素在列表(或字符串)中的位置(索引)方法总结

python获取列表中指定元素在列表(或字符串)中的位置(索引)方法总结

m0_56312629的博客 3119

NVIDIA NCCL 安装和测试实战教程

ibrary)是用于深度学习应用的高性能通信库,可加速多GPU通信和同步。它能够在多个GPU之间进行高效的数据传输和集体操作,显著提高了分布式GPU系统上深度学习训练和推理的性能。NVIDIA NCCL是加速多GPU系统上深度学习应用的必不可少的工具。其高效的通信原语和集体操作显著提高了分布式训练和推理的性能,使其成为现代深度学习基础架构的关键组成部分。

weixin_39818775的博客 4431

【LAMMPS学习】五、LAMMPS命令(1) LAMMPS 输入脚本

本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。

荷塘阅色 2645

Python字符串切片及定位详解

字符切片 str[n1:n2:n3] 表示按步长为n3(每隔一定长度取字符),从标号为n1,到n2-1取字符(注意范围是左闭右开)。 例子: str='Runoob' print(str) # 输出字符串 print(str[0:-1]) # 输出第一个到最后一个所有字符 print(str[0]) # 输出字符串第一个字符 print(str[2:5]) # 输出从第三个开始到第五个的字符 print(str[2:]) # 输出从第三个开始后的所有字符 print(str[1:5:2]) # 输

qq_46038474的博客 4437

2020年大连理工大学《单片机原理及应用》期末试卷

2020年大连理工大学《单片机原理及应用》期末试卷 此试卷为大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷。 ...

无名何许人的博客 1479

CString字符串比较、字符串长度、字符串拷贝、字符串拼接

目录字符串比较字符串长度字符串拷贝字符串拼接 字符串比较 比较两个字符串指针:如果两个字符串相等,返回0 strcmp(区分大小写) //多字节 stricmp(不区分大小写) //多字节 wcscmp(区分大小写) //宽字节 wcsicmp(不区分大小写) //宽字节 _tcscmp();(区分大小写) //多字节宽字节皆可 _tcsicmp();(不区分大小写) //多...

滴水穿石的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

字符串和字符串函数

字符串和字符串函数笔记

Simona_gy的博客 1862

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

字符串与字符串变量

C语言本身并没有专门为字符串设计独立的数据类型,而是巧妙地借助字符数组来实现字符串的功能。是一个字符指针,它可以指向一个字符数组的首地址,也可以指向一个字符串常量的首地址。字符串变量本质上就是字符数组,不同之处在于字符串值可以在程序运行期间进行修改。当把字符串常量赋值给字符串时,实际上是把字符串常量的首地址赋给了变量。字符数组本质上是数组的一种特殊形式,其数组元素的数据类型为字符。因为字符串常量存储在只读内存区域,使用指针可以直接指向该区域。的时候,C语言才会认为字符串结束,进而停止对字符的处理。

📖在读学生📖 1756

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

1. 字符串 字符串数组

1. 字符串 #include <stdio.h> #define MSG "I am a symbolic string constant." #define MAXLEN 81 int main(int argc, char const *argv[]) { char words[MAXLEN] = "I am a string in an array."; char *ptr1 = "Something is pointing at me."; puts("Here are s

weixin_44637703的博客 4454

C++处理字符串的方法——字符串类与字符串变量

C++提供了一种新的数据类型——字符串类型(string类型),在使用上和char、int类型一样,可以用来定义变量,这就是字符串变量。 实际上,string并不是C++本身具有的基本类型,它是C++标准库中声明的一共字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。 1.字符串变量的定义和引用 (1)定义字符串变量 和其他类型变量一样,字符串变量必须先定义后使...

Rock N' Roll Forever 3581

如何实现字符串加字符串

之前我们讲到了数字类型可以使用+加号来计算,其实+加号不仅可以用来计算,还可以用于字符串的连接。 字符串加字符串 我们来看一下字符串是如何加字符串: 从上图我们可以看出,两个字符串相加,输出结果就是将两个字符串按顺序连接起来。在前面的字符串输出时也在前面位置,如果字符串本身没有空格,那么输出时字符串之间也是没有空格的。 字符串加变量 字符串不仅可以和字符串连接,也可以直接和变量连接。 变量加变...

ivenqin的博客 4163

js字符串处理—是否包含某个字符串以及截取字符串

字符串内是否包含某个字符串——indexOf var oldString=“tongyuwan”; var newString=oldString.indexOf(‘tong’); if(newStrong)

像风走过八千里 2万+

C语言--字符串拷贝、字符串查找、字符串比较、字符串截取

 在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。 一、字符串拷贝 1、memcpy 2、strcpy 区别 二、字符串查找 三、字符串比较 四、字符串截取 1、一种简单而又机智的方法–strncpy  strncpy函数是拷贝N个字符到另一个字符数组中的库函数。利用它的性质可以达到截取字符串的目的:  首先:从源串中拷贝3个字符到终串中去(不能拷贝4个,否则会出现乱码!)...

似水流年 5万+

iOS之字符串处理:截取字符串、匹配字符串、分隔字符串

1、字符串的截取 //1.截取字符串 NSString *string =@"123456d890"; NSString *str1 = [string substringToIndex:5];//截取掉下标5之前的字符串 NSLog(@"截取的值为:%@",str1); NSString *str2 = [string substringFromIndex:3];//截取掉下标3之后的字符串 NSLog(@"截取的值为:%@",str2); 2、匹配字符串从字符串(sd是sfsfsA..

迦南的专栏 7825

字符串的子字符串

给定一个字符串 sss,定义 f(p)f(p)f(p) 为字符串 ppp 的所有不同的非空子字符串的数量。从字符串 sss 中找到一个非空子字符串 ppp,使得 f(p)f(p)f(p) 为偶数。如果找不到这样的子字符串,则输出 −1-1−1。 样例输出 #1 1.特殊情况 2.巧妙分析 特殊分析 转折 那就要有人有疑问了 请看 一直循环,可得只需要讨论三个字符串 补充:其实也可以用来输出区间字符串,但我还是小白,就先从基础好好写吧 (但是可以简单的带一下它的用法)

2401_87488178的博客 1639

C#基础——字符串、字符串API。可变字符串

字符串是 System.String 类的实例。字符串表示文本数据,可以包含字母、数字、符号和空格等字符。创建字符串字符串拼接str1str2占位符使用字符数组对字符串进行初始化字符串长度 Length。

一个不掉头发的资深小白 1999

【字符串】乱序字符串

问题描述 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中,样例:对于字符串数组 [“lint”,”intl”,”inlt”,”code”] 返回 [“lint”,”inlt”,”intl”] 问题分析:这个问题关键点有两个,第一个是如何判别两个顺序不同但是字母组成相同的字符串,很直接的方法就是...

永生只是一场幻梦 5418

C:字符串、字符串指针、字符串函数

在 C 语言中,字符串实际上是使用 空字符 \0 结尾的 一维字符数组。因此,\0 是用于标记字符串的结束。空字符()又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是 空字符。 C 编译器会在初始化数组时,自动把 \0 放在字符串的末尾。 每个字符用一个地址来存储。 ———— 字符数组 只有在定义时才可一次性赋值,一旦定义完就只能一个个赋值,如: 二、字符串指针(指向字符串的指针) 那这两种写法有什么区别么?在内存中存储区域不同,字符数组

long_steve的博客 2103
上一篇: 决策树
下一篇: Pandas函数(2)
Martin !
博客等级 码龄6年 7粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值