[R字符串] 字符串长度、分割、拼接、截取、替代、匹配和大小写替换

获取字符串长度:nchar()
字符串分割:strsplit()
字符串拼接:paste()
字符串截取:substr()
字符串替代:gsub() chartr() sub()
字符串匹配:grep()
大小写替换:toupper() tolower()

1. 获取字符串长度

nchar()能够获取字符串的长度,它也支持字符串向量操作。注意它和length()的结果是有区别的。

fruit <- 'apple orange grape banana'
nchar(fruit)
length(fruit)   #元素个数为1
[1] 1

2. 字符串分割

strsplit()负责将字符串按照某种分割形式将其进行划分,需要设定分隔符。下面我们是用空格来作为
分隔符将fruit分为四个元素。

> strsplit(fruit,split=' ')
[[1]]
[1] "apple"  "orange" "grape"  "banana"    #list结构

> fruitvec <- unlist(strsplit(fruit,split=' '))
> fruitvec
[1] "apple"  "orange" "grape"  "banana"   #转化为向量

3. 字符串拼接

paste()负责将若干个字符串相连结,返回成单独的字符串。其优点在于,就算有的处理对象不是字符
型也能自动转为字符型。另一个相似的函数paste0是设置无需分隔符的拼接。

paste(fruitvec,collapse=',')    #逗号作为分隔符
[1] "apple,orange,grape,banana"

4. 字符串截取

substr()能对给定的字符串对象取出子集,其参数是子集所处的起始和终止位置。

substr(fruit, 1,5)
[1] "apple"

5. 字符串替代

chartr是字母替换,不是字符串替换。
gsub()负责搜索字符串的特定表达式,并用新的内容加以替代。
sub()函数类似gsub(),但只替代第一个。

> chartr('world','bear',a)   #字母替换
Error in chartr("world", "bear", a) : 'old' is longer than 'new' #字符长度要求一致
> chartr('world','beara',a)
[1] "herre beara"
> x<-'i love you'
> chartr('you','she',x)   #实际是字母替换,不是字符串替换
[1] "i lhve she"

> a<-'i love you, do you love me ?'
> sub('you','she', a)            #只替换第一个参数you
[1] "i love she, do you love me ?"

> gsub('you','she', a)           #可以替换全部参数 
[1] "i love she, do she love me ?"  
gsub('apple','strawberry',fruit)
[1] "strawberry orange grape banana"

6. 字符串匹配

grep()负责搜索给定字符串对象中特定表达式 ,并返回其位置索引。grepl()函数与之类似,但其后面
的”l”则意味着返回的将是逻辑值。

grep('grape',fruitvec)   #返回grape在fruitvec中的位置
[1] 3 

7. 大小写替换

> a <- "Hello World"
> toupper(a)    #全部替换为大写
[1] "HELLO WORLD"
> tolower(a)    #全部替换为小写
[1] "hello world"
  • 20
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是代码实现: ```python # 输入一个字符串和一个整数 str_input = input("请输入一个字符串:") int_input = int(input("请输入一个整数:")) # 拼接操作 str_concat = str_input + str(int_input) # 计算长度 str_len = len(str_concat) # 截取操作 str_slice = str_concat[2:6] # 分割操作 str_split = str_concat.split("3") # 合并操作 str_join = "-".join(str_split) # 检索操作 str_find = str_concat.find("23") # 大小写转换操作 str_upper = str_concat.upper() str_lower = str_concat.lower() # 格式化字符串输出 print("拼接操作结果:{}".format(str_concat)) print("长度计算结果:{}".format(str_len)) print("截取操作结果:{}".format(str_slice)) print("分割操作结果:{}".format(str_split)) print("合并操作结果:{}".format(str_join)) print("检索操作结果:{}".format(str_find)) print("大写转换操作结果:{}".format(str_upper)) print("小写转换操作结果:{}".format(str_lower)) # 编码输出 str_gbk = str_concat.encode('gbk') str_utf8 = str_concat.encode('utf-8') print("GBK编码输出:{}".format(str_gbk)) print("UTF-8编码输出:{}".format(str_utf8)) ``` 测试样例: ``` 请输入一个字符串:abcd 请输入一个整数:23 拼接操作结果:abcd23 长度计算结果:6 截取操作结果:cd23 分割操作结果:['abc', '23'] 合并操作结果:abc-23 检索操作结果:2 大写转换操作结果:ABCD23 小写转换操作结果:abcd23 GBK编码输出:b'abcd23' UTF-8编码输出:b'abcd23' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值