作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬
学习必须往深处挖,挖的越深,基础越扎实!
阶段1、深入多线程
阶段2、深入多线程设计模式
阶段3、深入juc源码解析
阶段4、深入jdk其余源码解析
阶段5、深入jvm源码解析
码哥源码部分
码哥讲源码【谁再说Spring不支持多线程事务,你给我抽他!】
打脸系列【020-3小时讲解MESI协议和volatile之间的关系,那些将x86下的验证结果当作最终结果的水货们请闭嘴】
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
第一种办法使用正则表达式:
public static String replaceSpace(StringBuffer str) {
final String REGEX=" ";
final String REPLACE="%20";
Pattern p=Pattern.compile(REGEX);
Matcher m = p.matcher(str);
String temp;
temp=m.replaceAll(REPLACE);
return temp;
}
*eclispe能够通过,但是牛客上的编译器不能识别Pattern和Matcher;
第二种方法,自己手写一个查询替换:
public static String MyReplaceSpace(StringBuffer str) {
int length = str.length();
final String REPLACE="%20";
for(int i=0;i<length;i++){
if(str.charAt(i)==' ') {
str.deleteCharAt(i);
str.insert(i, REPLACE);
}
}
String string=new String(str);
return string;
}
第三种方法直接使用String类的replaceAll()方法:
public static String replaceSpace(StringBuffer str) {
return str.toString().replaceAll(" " , "%20");
}
644

被折叠的 条评论
为什么被折叠?



