专栏持续更新50道算法题,都是大厂高频算法题,建议关注, 一起巧‘背’算法!
题目
解法一 String类replace方法
String类自带的replace,方法传入两个char类型的参数,分别为要替换的目标字符和要替换为的字符
class Solution {
public String replaceSpace(String s) {
return s.replace(" ", "%20");
}
}
解法二 遍历替换
String字符串实际是一个char数组,因此可以遍历。替换的逻辑是挨个比,当前字符与目标替换字符进行比较,相同则替换,不同则拼接原字符。
public class Offer05 {
public static void main(String[] args) {
String s = "We are happy.";
System.out.println(replaceSpace(s));
}
public static String replaceSpace(String s) {
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < s.length(); i++){
char c = s.charAt(i);
if(c == ' ') {
sb.append("%20");
} else {
sb.append(c);
}
}
return sb.toString();
}
}
总结
很多字符串的题如果用String类的方法都可以很快解决。面试时最好自己造个轮子,再讲解思路的时候可以带上String类的对应方法。有时候很难猜面试官出这种题的目的,考察的是善用java类的能力还是造轮子的能力。