替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解题思路

由于每个空格替换成“%20”,则替换掉一个空格之后数组长度加2,然后倒序复制前数组即可。要注意⚠️数组长度,否则会出现数组越界的情况。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Solution {
public String replaceSpace(StringBuffer str) {
String s = str.toString();
int space = 0;
for(int i = 0;i <= s.length() - 1;i++){
if(s.charAt(i) == ' '){
space++;
}
}
//s1为新数组长度。
int s1 = s.length() + space * 2;
char[] s2 = new char[s1];
//a为新数组复制后的第一个元素数组下标,须-1防止数组越界。
int a = s1 - 1;
for(int i = s.length() - 1;i >= 0;i--){
if(s.charAt(i) == ' '){
s2[a--] = '0';
s2[a--] = '2';
s2[a--] = '%';
}else{
s2[a--] = s.charAt(i);
}
}
return new String(s2);
}
}
坚持原创技术分享,您的支持将鼓励我继续创作!