题目:
https://www.nowcoder.com/ta/coding-interviews

将特殊字符替换成ASCII码,例如空格对应32(0x20).在网络编程的背景中为了使服务器识别特殊字符需要做的转换是:

空格—>’%20’。

例如:当字符串为’We Are Happy.’则经过替换之后的字符串为’We%20Are%20Happy.’

思考:
基于python的特点,

如何对字符串进行替换操作?先看看字符串中有哪些常用方法。

观察到s.replace(old,new)可以对字符串进行替换

1
s = 'we are happy.'

方法1. 利用python的语言特点作字符串替换

1
2
3
class Solution:
def replaceSpace1(self, s):#s为含空格字符串
return s.replace(" ", "%20")
1
2
3
method = Solution()
answer = method.replaceSpace1(s)
answer
'we%20are%20happy.'

方法2. 从前往后遍历,依次替换空格

1
2
3
4
5
6
7
8
class Solution:
def replaceSpace2(self, s):
s_new = ""
for i in s:
if i == " ":
i = "%20"
s_new += i
return s_new
1
2
3
method = Solution()
answer = method.replaceSpace2(s)
answer
'we%20are%20happy.'
1
方法3.
1
2
3
4
5
6
7
8
9
10
class Solution:
def replaceSpace3(self, s):
s = list(s)#转换成列表
for i in range(len(s)):
if s[i] == " ":
s[i] = "%20"
# return s
# return " ".join(s)#用空格连接各个元素,返回如'w e %20 a r e %20 h a p p y .'
# return "_".join(s)#用下划线'_'连接各个元素,返回如'w_e_%20_a_r_e_%20_h_a_p_p_y_.'
return "".join(s)#不用空格或其他任何东西连接各个元素,返回如'we%20are%20happy.'
1
2
3
method = Solution()
answer = method.replaceSpace3(s)
answer
'we%20are%20happy.'

join的用法简单来说就是连接字符串。

join将容器对象拆分并以指定的字符将列表内的元素(element)连接起来,返回字符串(注:容器对象内的元素须为字符类型)

https://www.cnblogs.com/hokky/p/8479991.html

与join相反,split以指定的字符将字符串分割为单个元素(字符类型)并加入list中,返回一个List

reference:

1.https://blog.csdn.net/Datawhale/article/details/81944081

1
2