字符串替换空格
面试官:请实现一个函数替换字符串中的每个空格替换成"%20"
题目:
请实现一个函数,把字符串的每个空格替换成"%20",例如,输入"We are family",则输出"We%20are%20happy%20"
我:第一反应,肯定是使用String的replace方法。唰唰唰,上代码
public static String replaceSpaceOld(String anyStr){
//常规判空
if(anyStr == null || anyStr.length() ==0){
return null;
}
return anyStr.replace(" ","%20");
}
面试官:你倒是会偷懒,请不借助replace方法实现一下。
我:该偷懒就偷懒,不用replace的话,我试试将字符串转换为字符数组,遍历数组,再通过StringBuilder做拼接,这样那样一弄就OK了。上代码。
public static String replaceSpaceNew(String anyStr){
//常规判空
if(anyStr ==null || anyStr.length()==0){
return null;
}
//转换字符数组
char[] chars = anyStr.toCharArray();
//使用StringBuiler做拼接
StringBuilder stringBuilder = new StringBuilder();
for(char charstr : chars){
//等于空格
if(charstr == ' '){
stringBuilder.append("%20");
}else{
stringBuilder.append(charstr);
}
}
return stringBuilder.toString();
}
总结:
- 笔试题有多种解法,时间复杂度,空间复杂度,要求不同解法不同。
- 写出满足时间空间复杂度要求>写出一种解法>写不出来有思路的>写不出来一片混乱的。
- 切记,面试时表达展现自己的机会,不是学校里面的考试,不及格就挂了,面试官也会依据你个人的表达能力,思维逻辑能力,工作年限等综合因素考虑。
祝大家能有更好的成长。