题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
题解
法1 – java实现
- 新建一个数组,遍历原字符串的同时将其值存储到新的数组中
class Solution {
public String replaceSpace(String s) {
int length = s.length();
char[] array = new char[length * 3]; //挨个存放s中的字符
int size = 0; // array数组当前位置的索引
for(int i = 0; i < length; i++){
char c = s.charAt(i); // charAt(i)方法获取字符串中的第i个元素的值
if(c == ' '){
array[size++] = '%';
array[size++] = '2';
array[size++] = '0';
}
else{
array[size++] = c;
}
}
// 将数组转成字符串
String newStr = new String(array,0,size);
return newStr;
}
}
法2 – java实现
- 创建一个字符串,遍历原字符串的同时将遍历到的字符存储到新字符串中
- 注:也可以将字符串定义为" ",然后每次加上字符c 或者 ‘%20’
class Solution {
public String replaceSpace(String s) {
// 创建一个字符串,遍历原字符串的同时将遍历到的字符存储到新字符串中
// 创建一个字符串的方法,记住!
StringBuilder string = new StringBuilder();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (c == ' '){
string.append("%20");
}
else{
string.append(c);
}
}
// 返回字符串的方式,用toString()方法
return string.toString();
}
}
法3 – java实现、python实现
- 直接用replaceAll() / replace()方法将" “替换为”%20"’
1.java实现
class Solution {
public String replaceSpace(String s) {
String string = s.replaceAll(" ", "%20");
return string;
}
}
2.python实现
class Solution(object):
def replaceSpace(self, s):
"""
:type s: str
:rtype: str
"""
return s.replace(' ','%20')
法4 – python实现
- 先用split()方法分割字符串为列表
- 再用join()将列表中的各个值拼接成一个字符串
class Solution(object):
def replaceSpace(self, s):
"""
:type s: str
:rtype: str
"""
# return s.replace(' ','%20')
list = s.split(' ')
return '%20'.join(list)
总结
- 记住这个将数组转成字符串的方式
// 将数组转成字符串
String newStr = new String(array,0,size);
- 记住字符串的相关方法
StringBuilder string = new StringBuilder(); // 创建字符串
string.append() // 添加字符(串)
s.length() // 获取字符串的长度
String string = s.replaceAll(" ", "%20"); // 直接替换所有