题目描述:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
思路:
- 用字符数组,考虑到将一个字符的空格替换为三个字符,创建一个长度为原字符串长度3倍的字符数组,遍历原字符串,遇到空格将当前字符替换为’%’,下一个字符替换为’2’,下下个字符替换为’0’,如果不是空格,原字符输出。
class Solution{
public String replaceSpace(String s){
char[] array = new char(s.length() * 3);
int size = 0;
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (c == ' '){
array(size++) = '%';
array(size++) = '2';
array(size++) = '0';
}
else{
array(size++) = c;
}
}
String newString = new String(array, 0, size);
return newString;
}
}
- 用字符串缓冲区StringBuilder,创建一个StringBuilder,遍历原字符串,遇到空格,在StringBuilder中追加"%20",否则追加当前字符。
注意:
String.toCharArray():将一个字符串转换成一个 Character 型的字符数组
class Solution {
public String replaceSpace(String s) {
StringBuilder sb = new StringBuilder();
for (Character c : s.toCharArray()){
if(c == ' ') sb.append("%20");
else sb.append(c);
}
return sb.toString();
}
}