请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
在网络编程中,URL参数中需要包含特殊字符(‘#’或者空格等),可能导致服务器端无法正确解析。需要将特殊字符转化为服务器识别的字符。
转换规则: ‘%’后加上ASCII码的两位16进制的表示;
空格的ASCII码:32;即16进制的0x20,故本题需要替换为‘%20’。
一、分割再替换
1.首先判断字符串是否为空
2.将字符串按照“‘ ’”(空格)来分割,并调用Python中关于字符串的“.join()”。
代码:
// # -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
if not s:
return ""
return '%20'.join(s.split(' '))
二、replace的使用
代码:
// # -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
if not s:
return ""
return s.replace(' ', '%20')
# 注意是‘ ’,不是‘’;
三、遍历
即遇到空格进行替换,但是str在Python中是不可变数据类型,可先转为list操作;
代码:
// # -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
if not s:
return ""
for i in range(len(s)):
if s[i] == ' ':
s[i] = '%20'
return ''.join(s)
在学习正则表达式的时候,除了掌握基本的匹配单、多字符等,re模块中的search、match、findall、sub都挺好用的。
代码:
// # -*- coding:utf-8 -*-
import re
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
if not s:
return ""
return re.sub(' ', '%20', s)
其实这些方法相比其他语言,其中几种都是借助Python本身的优势,split、re.sub等,不需要像一般的语言统计具体的空格个数再遍历,自己感觉很方便。这是自己第一篇处女博客文,写的一般,大家随意指正吧。