Replace spaces
Time limit : 1秒
space constraints : 32768K
this question knowledge : 字符串
Title Description :
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
Solution one:
/**
*新建 StringBuffer 用于保存和拼接替换后的字符串结果
*其中 StringBuffer/StringBuilder 自带有 length()/charAt() 方法,因此不必转换成字符串再操作
*若某位字符为空格,则拼接"%20";否则,拼接原来字符。最后返回 buffer 对象拼接出的结果
*/
public class Solution {
public String replaceSpace(StringBuffer str) {
StringBuffer buffer = new StringBuffer();
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
if(c == ' '){
buffer.append("%20");
}else{
buffer.append(c);
}
}
return buffer.toString();
}
}
Answer two:
/**
*最简单的使用 String 类的字符串替换方法 replace()
*String.replace(String target, String replacement)
*/
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replace(" ","%20");
}
}
Solution three:
/**
*使用 String 类的正则匹配字符串替换方法 replaceAll()
*String.replaceAll(String regex, String replacement)
*/
public class Solution {
public String replaceSpace(StringBuffer str) {
// 正则表达式 \s 匹配任何空白字符,包括空格、制表符、换页符等等。
// 经测试文本编辑器编写的Java文件的制表符等也会被匹配而转换,因此使用 \s 不太合理,此处单用空格符
return str.toString().replaceAll(" ","%20");
}
}