题目
URL化。编写一种方法,将字符串中的空格全部替换为%20
。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度。(注:用Java
实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
1
2
2
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
1
2
2
提示:
- 字符串长度在 [0, 500000] 范围内。
题解
java
public String replaceSpaces(String S, int length) {
int len = Integer.min(S.length(), length);
// 最长为所有字符串均为空格即字符串长度的3倍
char[] result = new char[len * 3];
// 记录字符数
int cnt = 0;
char[] chars = S.toCharArray();
for (int i = 0; i < len; i++) {
// 空格替换
if (chars[i] == ' ') {
result[cnt++] = '%';
result[cnt++] = '2';
result[cnt++] = '0';
} else {
// 非空格直接字符设置字符
result[cnt++] = chars[i];
}
}
return new String(result, 0, cnt);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21