一、 题目:01.03.URL化
题目描述:
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:“Mr%20John%20Smith”
示例 2:
输入:" “, 5
输出:”%20%20%20%20%20"
提示:
字符串长度在 [0, 500000] 范围内。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-url-lcci
二、解题思路:
算法1:
(1).算法描述:
创建一个新的StringBuilderd对象sm,初始置为空;
然后依次遍历字符串S中的所有字符:
如果字符为空格,就用append方法在sm后面追加"%20";
如果字符不是空格,就把此字符追加到sm后面;
最后得到的sm就是最终结果。
(2).代码实现:
public String replaceSpaces(String S, int length) {
StringBuilder sm =new StringBuilder();//创建一个StringBuilder对象sm
for(int i =0;i < length;i ++) {//遍历字符串S
if(S.charAt(i) != ' ') {//字符是空格
sm.append(S.charAt(i));
} else {//字符不是空格
sm.append("%20");
}
}
return String.valueOf(sm);//返回结果
Leetcode原图:
算法2:
算法描述:
直接利用String类中的replaceAll方法,把S中的空格都替换为"%20"。
代码实现:
public String replaceSpaces(String S, int length) {
return S.replaceAll(" ","%20");
}
补充:
现在真心觉得java比C语言方便的多,Java里面的好多东西都封装好了,直接调用相关的方法即可,例如算法2.